块级元素
1.每个块级元素都是独自占一行。
2.元素的高度、宽度、行高和边距都是可以设置的。
3.元素的宽度如果不设置的话,默认为父元素的宽度(父元素宽度100%)。
div、p、h1~h6、ul、ol、li、table、hr、blockquote、address、menu、pre
HTML5新增的header、section、aside、footer
行内元素
1.每一个行内元素可以和别的行内元素共享一行,相邻的行内元素会排列在同一行里,直到一行排不下了,才会换行。
2.行内元素的高度、宽度、行高及顶部和底部边距不可设置。
3.元素的宽度就是它包含的文字或图片的宽度,不可改变。
span、img、a、lable、input、textarea、select、button(默认display:inline-block)
行内块级元素
它既具有块级元素的特点,也有行内元素的特点,它可以自由设置元素宽度和高度,也可以在一行中放置多个行内块级元素。比如input、img就是行内块级元素,它可以设置高宽以及一行多个。
具体特点如下:
1.和其他行内或行内块级元素元素放置在同一行上;
2.元素的高度、宽度、行高以及顶和底边距都可设置。
li标签间有空白是怎么回事? 消除li横排后空隙
浏览器的默认行为是把inline元素间的空白字符(空格换行tab)渲染成一个空格,也就是我们上面的代码
- 换行后会产生换行字符,而它会变成一个空格,当然空格就占用一个字符的宽度,所以你懂的...
方法一:既然是因为
-
换行导致的,那就可以将
-
代码全部写在一排
方法二:
本来以为方法二能够完全解决问题,但经测试,将li父级标签字符设置为0在Safari浏览器依然出现间隔空白;既然设置字符大小为0不行,那咱就将间隔消除了,将下面代码替换方法二的代码,目前测试完美解决。同样随来而来的问题是li内的字符间隔也被设置了,我们需要将li内的字符间隔设为默认。
- .wrap ul{letter-spacing: -4px;}
之后记得设置li内字符间隔
- .wrap ul li{letter-spacing: normal;}
方法三:
讲父节点的ul的font-size设置为0;然后设置li的font-size.
方法四:
可以将li的标签不闭合.