摘要:本篇文章主要讲述HTML+CSS入门之详解前端CSS2,希望阅读本篇文章以后大家有所收获,帮助大家对相关内容的理解更加深入。
本篇文章主要讲述HTML+CSS入门之详解前端CSS2,希望阅读本篇文章以后大家有所收获,帮助大家对相关内容的理解更加深入。
CSS盒子模型介绍
盒子模型解释
元素在页面中显示成一个方块,类似一个盒子,CSS盒子模型就是使用现实中盒子来做比喻,帮助我们设置元素对应的样式。
把元素叫做盒子,设置对应的样式分别为:盒子的边框(border)、盒子内的内容和边框之间的间距(padding)、盒子与盒子之间的间距(margin)。
设置边框
设置一边的边框,比如顶部边框,可以按如下设置:
border-top-color:red; /* 设置顶部边框颜色为红色 */ border-top-width:10px; /* 设置顶部边框粗细为10px */ border-top-style:solid; /* 设置顶部边框的线性为实线,常用的有:solid(实线) dashed(虚线) dotted(点线); */
上面三句可以简写成一句:
border-top:10px solid red; /* 顺序随意 */
设置其它三个边的方法和上面一样,把上面的'top'换成'left'就是设置左边,换成'right'就是设置右边,换成'bottom'就是设置底边。
四个边如果设置一样,可以将四个边的设置合并成一句:
border:10px solid red;
设置内间距padding
设置盒子四边的内间距,可设置如下:
padding-top:20px; /* 设置顶部内间距20px */ padding-left:30px; /* 设置左边内间距30px */ padding-right:40px; /* 设置右边内间距40px */ padding-bottom:50px; /* 设置底部内间距50px */
上面的设置可以简写如下:
padding:20px 40px 50px 30px; /* 四个值按照顺时针方向,分别设置的是 上 右 下 左 四个方向(即顺时针)的内边距值。 */
padding后面还可以跟3个值,2个值和1个值,它们分别设置的项目如下:
padding:20px 40px 50px; /* 设置顶部内边距为20px,左右内边距为40px,底部内边距为50px */ padding:20px 40px; /* 设置上下内边距为20px,左右内边距为40px*/ padding:20px; /* 设置四边内边距为20px */
注意:当先设置好了盒子的宽高时,再添加padding,会给盒子增加宽高!
设置外间距margin
外边距的设置方法和padding的设置方法相同,将上面设置项中的'padding'换成'margin'就是外边距设置方法。
CSS盒子模型示例
盒子模型真实尺寸计算
盒子模型的尺寸
按照下面代码制作页面:
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>盒子模型演练示例</title> <style type="text/css"> .box01{width:50px;height:50px;background-color:gold;} .box02{width:50px;height:50px;background-color:gold;border:50px solid #000} .box03{width:50px;height:50px;background-color:gold;border:50px solid #000;padding: 50px;} </style></head><body> <div class="box01">1</div> <br /> <div class="box02">2</div> <br /> <div class="box03">3</div></body></html>
通过上面的页面得出结论:盒子的width和height设置的是盒子内容的宽和高,不是盒子本身的宽和高。
盒子的真实尺寸计算公式如下:
盒子宽度 = width + padding左右 + border左右
盒子高度 = height + padding上下 + border上下
margin相关技巧
1. 设置元素水平居中: margin:x auto;
2. margin负值让元素位移及边框合并。
01:将一个盒子居中;
auto只能用于宽度方向,不能用于高度方向;
将一个盒子居中
02:margin使用技巧之使用负值去除边框重叠
margin使用技巧之使用负值去除边框重叠
去除文字默认的行高,可以将行高设置成和字体大小一致即可;
外边距合并问题
外边距合并指的是,当两个垂直外边距相遇时,它们将形成一个外边距。合并后的外边距的高度等于两个发生合并的外边距的高度中的较大者。
解决方法如下:
1. 使用这种特性,即上下两边都设置margin,但其中一边取原本希望的两边之和;
2. 只设置一边的外边距,一般设置margin-top;
3. 将元素浮动或者定位。
只是垂直方向的合并,左右不会合并;
外边距合并时W3C故意为之,而元素溢出则是W3C的一个bug。
margin-top 塌陷问题
margin-top 塌陷
在两个盒子嵌套时候,内部的盒子设置的margin-top会加到外边的盒子上,导致内部的盒子margin-top设置失败。
解决方法如下:
1. 外部盒子设置一个边框;
2. 外部盒子设置 overflow:hidden;(存在一定问题)
3. 使用伪元素类:.clearfix:before{content: '';display:table;}。
注意:margin-top塌陷只会出现在垂直方向,不会出现在水平方向。
使用margin-top出现问题的代码
margin-top问题
解决margin-top的三种方法示例
解决margin-top的三种方法
css元素溢出
当子元素的尺寸超过父元素的尺寸时,就会出现元素溢出,需要设置父元素显示溢出的子元素的方式,设置的方法是通过overflow属性来设置。
overflow的设置项:
· visible 默认值。内容不会被修剪,会呈现在元素框之外。
· hidden 仅显示父元素尺寸内内容,超出的内容不可见;此属性还有清除浮动、清除margin-top塌陷的功能。
· scroll 不管元素是否溢出,都以滚动条的形式显示。
· auto 如果元素溢出,则以滚动条的形式显示。
· inherit 从父元素继承 overflow 属性的值,很少用。
元素溢出auto参数使用示例
块元素、内联元素、内联块元素
元素就是标签,布局中常用的有三种标签,块元素、内联元素、内联块元素,了解这三种元素的特性,才能熟练的进行页面布局。
块元素
块元素,也可以称为行元素,布局中常用的标签如:div、p、ul、li、h1~h6、dl、dt、dd 等等都是块元素。
它在布局中的行为:
· 支持全部的样式
· 如果没有设置宽度,默认的宽度为父级宽度100%
· 盒子占据一行,即使设置了宽度;(这句话的理解是,即使设置了宽高,也独占一行,不会让其他的元素浮动过来共享一行)
内联元素
内联元素,也可以称为行内元素,布局中常用的标签如:a、span、em、b、strong、i等等都是内联元素。
它们在布局中的行为:
· 支持部分样式(不支持宽、高、margin上下、padding上下)
· 宽高由内容决定
· 盒子并在一行
· 代码换行,盒子之间会产生间距
· 子元素是内联元素,父元素可以用text-align属性设置子元素水平对齐方式,用line-height属性值设置垂直对齐方式
解决内联元素间隙的方法
1. 去掉内联元素之间的换行
2. 将内联元素的父级设置font-size为0,内联元素自身再设置font-size
内联块元素/行内元素
内联块元素,也叫行内块元素,是新增的元素类型,现有元素没有归于此类别的,img和input元素的行为类似这种元素,但是也归类于内联元素,
我们可以用display属性将块元素或者内联元素转化成这种元素。
它们在布局中表现的行为:
· 支持全部样式
· 如果没有设置宽高,宽高由内容决定
· 盒子并在一行
· 代码换行,盒子会产生间距
· 子元素是内联块元素,父元素可以用text-align属性设置子元素水平对齐方式,用line-height属性值设置子元素垂直对齐方式
这三种元素,可以通过display属性来相互转化,不过实际开发中,块元素用得比较多,所以我们经常把内联元素转化为块元素,
少量转化为内联块,而要使用内联元素时,直接使用内联元素,而不用块元素转化了。
display属性
display属性是用来设置元素的类型及隐藏的,常用的属性有:
· none 元素隐藏且不占位置
· block 元素以块元素显示
· inline 元素以内联元素显示
· inline-block 元素以内联块元素显示
display=none的应用
通过display=inline-block将div盒子放在一行;
通过display=none实现鼠标移动到文字上显示图形,移开不显示。
display=none实现鼠标移动到文字上显示图形,移开不显示
文档流
文档流,是指盒子按照html标签编写的顺序依次从上到下,从左到右排列,块元素占一行,行内元素在一行之内从左到右排列,先写的先排列,后写的排在后面,每个盒子都占据自己的位置。
浮动特性
· 浮动元素有左浮动(float:left)和右浮动(float:right)两种
· 浮动的元素会向左或向右浮动,碰到父元素边界、浮动元素、未浮动的元素才停下来
· 相邻浮动的块元素可以并在一行,超出父级宽度就换行
· 浮动让行内元素或块元素自动转化为行内块元素
· 浮动元素后面没有浮动的元素会占据浮动元素的位置,没有浮动的元素内的文字会避开浮动的元素,形成文字饶图的效果
· 父元素内整体浮动的元素无法撑开父元素,需要清除浮动
· 浮动元素之间没有垂直margin的合并
浮动示例
1.利用浮动形成左右对峙的两个盒子
利用浮动形成左右对峙的两个盒子
2.上面盒子浮动,下面盒子不浮动
上面盒子浮动,下面盒子不浮动本来两个盒子各占一行,我们将上面的红色盒子浮动后,蓝色盒子会和红色盒子重叠,且在最左上角部分,红色覆盖蓝色。
如果未浮动的元素中有文字,我们将背景色去掉,就会形成文字饶图的情况;此外,我们也可以给浮动的块设置margin,控制文字离它的距离。
3.文字饶图
4.用列表制作菜单
首页验收标准大概在3个像素之内,其余页面在5个像素之内即可。
一般菜单都是用ul+li+a来制作的,而不是用div+a制作的;
去掉列表的小圆点:list-style: none;
用列表制作菜单
清除浮动
清除浮动的方法:
1. 父级上增加属性overflow:hidden
2. 在最后一个子元素的后面加一个空的div,给它样式属性 clear:both(不推荐)
3. 使用成熟的清浮动样式类,clearfix
.clearfix:after,.clearfix:before{ content: "";display: table;} .clearfix:after{ clear:both;} .clearfix{zoom:1;} 清除浮动的使用方法: .con2{... overflow:hidden} 或者 <div class="con2 clearfix">
需要清除浮动的场景:1.元素浮动;2.父级元素未设置高度。
在一个div里面,设置边框且不设置高,全部放浮动的元素,会发现上下两条边会合在一起,这是因为浮动的元素撑不起盒子;
.clearfix {zoom: 1;} /* 解决在ie浏览器中可能无法清除浮动的问题 */
清除浮动的方法示例
关于定位
我们可以使用css的position属性来设置元素的定位类型,postion的设置项如下:
· relative 生成相对定位元素,元素所占据的文档流的位置不变,元素本身相对文档流的位置进行偏移
· absolute 生成绝对定位元素,元素脱离文档流,不占据文档流的位置,可以理解为漂浮在文档流的上方,相对于上一个设置了相对或者绝对或者固定定位的父级元素来进行定位,如果找不到,则相对于body元素进行定位。
· fixed 生成固定定位元素,元素脱离文档流,不占据文档流的位置,可以理解为漂浮在文档流的上方,相对于浏览器窗口进行定位。
· static 默认值,没有定位,元素出现在正常的文档流中,相当于取消定位属性或者不设置定位属性
· inherit 从父元素继承 position 属性的值
定位元素特性
绝对定位和固定定位的块元素和行内元素会自动转化为行内块元素
定位元素层级
定位元素是浮动的正常的文档流之上的,可以用z-index属性来设置元素的层级;层级最高,就浮动在最上面。
关于层级,后写的标签默认会漂浮在先写的标签的上面,即后写的默认层级最高。
典型定位布局
· 固定在顶部的菜单
· 水平垂直居中的弹框
· 固定的侧边的工具栏
· 固定在底部的按钮
应注意,相对定位后,元素所占据的文档流的位置不变,这句话可以理解为一个萝卜一个坑,而有一个萝卜飘起来了,但那个坑还是它占着。
相对定位较少使用,一般是和绝对定位配合使用,用作绝对定位的父级定位标签;
要使用绝对定位,先设置父级定位,如果父级不需要偏移,只需要设置一个相对定位 position: relative;即可。
固定定位只相对于浏览器窗口进行定位,不因父级定位了而改变定位的地点。
绝对定位示例
绝对定位示例
相对定位实例
View Code
固定定位实例
View Code
定位元素的层级示例
View Code
消息提示示例
View Code
02:定位实例-固定在顶部的菜单栏-丐版
让浮动元素居中:用margin的auto没有用,先使用left=50%,再用margin-left= - 浮动元素宽度的一半;
View Code
弹框-丐版的实现
View Code
属性解释
background属性是css中应用比较多,且比较重要的一个属性,它是负责给盒子设置背景图片和背景颜色的,background是一个复合属性。
它可以分解成如下几个设置项:
· background-color 设置背景颜色
· background-image 设置背景图片地址
· background-repeat 设置背景图片如何重复平铺
· background-position 设置背景图片的位置
· background-attachment 设置背景图片是固定还是随着页面滚动条滚动
实际应用中,我们可以用background属性将上面所有的设置项放在一起,而且也建议这么做,这样做性能更高,而且兼容性更好,比如:“background: #00FF00 url(bgimage.gif) no-repeat left center fixed”,这里面的“#00ff00”是设置background-color;“url(bgimage.gif)”是设置background-image;“no-repeat”是设置background-repeat;“left center”是设置background-position;“fixed”是设置background-attachment,各个设置项用空格隔开,有的设置项不写也是可以的,它会使用默认值。
背景属性示例
View Code
大图放小框示例
View Code
在调试时,可以通过在浏览器上点击检查,点击右边的css样式,进入调试模式来确定合适的数值;
雪碧图列表背景
View Code
网页背景固定
View Code
本文由职坐标整理发布,学习更多的相关知识,请关注职坐标IT知识库!
您输入的评论内容中包含违禁敏感词
我知道了
请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号