行内元素、块状元素

172 阅读2分钟

块级元素

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内的字符间隔设为默认。

  1. .wrap ul{letter-spacing: -4px;}

之后记得设置li内字符间隔

  1. .wrap ul li{letter-spacing: normal;}

方法三:

讲父节点的ul的font-size设置为0;然后设置li的font-size.

image.png

方法四:

可以将li的标签不闭合.

image.png