默认值为0,前面两个值分别代表阴影在x轴的位移、在y轴的位移,都为0,证明阴影没有偏移,所以完全和元素重叠,看不出来。
指定单个 box-shadow 的用法:
1. 如果只给出两个值, 这两个值将被浏览器解释为x轴上的偏移量 和y轴上的偏移量 。
2.如果给出了第三个值, 这第三个值将被解释为模糊半径的大小 。
3.如果给出了第四个值, 这第四个值将被解释为扩展半径的大小 。
设置了float、absolute、fixed的元素会自动转换为块级元素(类似于行内块)
清除浮动方法:
.father {
/* height: 200px; */ 清除浮动方式1
/* overflow: hidden; */清除浮动方式2
background-color: pink;
}
.son {
float: left;
width: 300px;
height: 200px;
background-color: purple;
}
/*清除浮动方式3*/
.clearfix::after {
display: block;
content: "";
clear: both;
height: 0;
visibility: hidden;
}
.clearfix {
*zoom: 1;
/* IE6、7 专有 */
}
css布局三种机制在页面中的顺序: 标准流 < 浮动 < 定位
1.相对其原来在标准流中的位置进行定位的
2.但其原来在标准流中的位置仍然保留
1.标准流的子盒子总是以父级为标准移动位置
2.相对于其最近的父元素(祖先)并且设置了定位的元素进行定位
3.如果父盒子没有设置定位,则是以浏览器定位
4.完全脱标,不占位置
5.子绝父相
1.完全脱标
2.以浏览器的可视窗口进行定位
1.父元素定位基准:父元素的内容区(也即是content(width+height)+padding区域,不包括border和margin。
2.子元素定位的边界是包括子元素的 整体 = margin + border + padding + content ;的margin外边界为基准进行定位。
总结:如果子元素设置了定位元素,但是没有设置left top 等值,子元素依然会收父元素padding值影响
background:
所有属性合写:
background: #00FF00 url(bgimage.gif) no-repeat fixed top;
background: -webkit-linear-gradient(left top, #6cc9b7, #3979cc);
background: linear-gradient(to bottom, #fff, #ccc, #FDF7EE);
/*以区块内的文字作为裁剪区域向外裁剪,文字的背景即为区块的背景,文字之外的区域都将被裁剪掉*/
-webkit-background-clip: text;
/*设置字体颜色透明,这样不会遮住div的背景色*/
color: transparent;
/*解决嵌套块元素垂直外边距的合并问题*/
border:1px solid transparent;
padding:1px;
float:left/right
position:absolute
display:inline-block
overflow:hidden/auto
以margin为例,padding同理
练习做苏宁易购案例时,做广告图片时,发现图片下面一直有一个大的空白,最后经过各种研究发现竟然是上面设置的行高影响了,导致a的line-height为75了,把盒子撑开了,所以一直有一个行高存在。
设置行高为line-height:0;
line-height 的值可以是一个长度(length)或者是一个数字,或者百分比,它的默认值是 normal。
normal属性是根据浏览器来计算行高的,父子元素都是。
取决于用户代理。桌面浏览器(包括火狐浏览器)使用默认值,约为1.2,这取决于元素的 font-family。
number*字体大小
该属性的应用值是这个无单位数字乘以该元素的字体大小。计算值与指定值相同。大多数情况下,使用这种方法设置line-height是首选方法,在继承情况下不会有异常,由此描述可见,number的计算值与文字本身的大小有关系,即`line-height : number * 文字本身的font-size`
指定 用于计算 line box 的高度。查看 获取可能的单位。
percentage也是根据父元素font-size产生的行高,导致三段问题行高相同!
与元素自身的字体大小有关。计算值是给定的百分比值乘以元素计算出的字体大小。,由此描述可见,number的计算值与文字本身的大小有关系,即`line-height : number * 父元素字体的font-size`
设置 font-size: 0;
这个方法,基本上可以解决大部分浏览器下inline-block元素之间的间距(IE7等浏览器有时候会有1像素的间距)。不过有个浏览器,就是Chrome, 其默认有最小字体大小限制,因为,考虑到兼容性,添加下面的代码
font-size: 0;
/*考虑兼容性 */
-webkit-text-size-adjust:none;
display可取值:
display:none | inline | block | list-item | inline-block | table | inline-table | table-caption | table-cell | table-row | table-row-group | table-column | table-column-group | table-footer-group | table-header-group 等等。
1.替换元素:替换元素根据其标签和属性来决定元素的具体显示内容,等。替换元素一般有内在尺寸如img默认的src属性引用的图片的宽高,表单元素如input也有默认的尺寸。img和input的宽高可以设定。
2.不可替换元素:即将内容直接表现给用户端。
注意:几乎大部分的替换元素都是行内元素,所以说如input、img、textarea是行内元素但是是可以设置宽高的说法。