web前端入门到实战:css中display属性

display属性共有4个值:

blcok:块级元素
inline-block:行内块级元素
inline:行内元素
none:隐藏元素,不占据空间

1.块级元素

常见的块级元素有div,p,ul,ol,li,h1~h6等
块级元素会默认占满父元素的宽度且独占一行

<div>
    <p>尽可能的占满父元素的宽度</p>
</div>

2.行内元素

常见的行内元素有span,img,a,input,button,textarea、select等,他的宽度完全由内容撑开,不能为其设置宽高。
除非父元素一行放满了,行内元素不然不会换行
行内元素受父元素的text-align的影响,父元素设置text-align:center,行内元素会居中显示
行内元素受父元素的white-space的影响,父元素设置white-space:nowrap,行内元素将不会换行

3.行内块级元素

行内块级元素可以像跨级元素一样设置宽高
行内块级元素如果不设置宽高的话,他的大小默认由内容或者说子元素撑开。它的特性介于块级元素与行内元素之间
行内块级元素一样受父元素的text-align的影响,父元素可以设置父元素的text-align来决定他的对齐方式
行内块级元素素受父元素的white-space的影响,父元素设置white-space:nowrap,行内块级元素将不会换行

<div>
    <span>行内元素</span>
</div>
<div>
    <span>行内块级元素</span>
</div>
专门建立的学习Q-q-u-n: 784-783-012 ,分享学习的方法和需要注意的小细节,不停更新最新的教程和学习技巧
(从零基础开始到前端项目实战教程,学习工具,全栈开发学习路线以及规划)

4.实际运用

在轮播图中,最外层的容器宽度是固定的,且overflow:hidden
第二层容器ul的宽度则是它子元素的宽度之和,因为子元素的个数不确定,所以不能在css中设定确定的宽度值,通常我们都是利用js计算出它子元素的宽度之和再赋予ul元素,今天这个例子我们不用js,利用inline-block宽度由子元素撑开的特性,让ul的宽度由子元素撑开

设置ul的样式display:inline-block,同时为了让所有的li标签不换行,设置white-space: nowrap
为了能让ul的white-space: nowrap生效,li标签需要设置display:inline-block,要消除代码换行造成的间隔,可以让父元素的字体大小设置为0,,然后子元素里面再设置字体大小即可

<div>
<ul>
    <li>inline-block</li>
    <li>inline-block</li>
    <li>inline-block</li>
    <li>inline-block</li>
</ul>
</div>

相关推荐