「css基础」如何理解Display的属性:None,Block,Inline,Inline-Block

640?wx_fmt=jpeg

开篇


本篇文章,笔者将介绍display的基本属性,主要涉及以下内容:

  • display: none vs visibility: hidden

  • display: block

  • display: inline

  • display: inline-block

(文末送最新CSS3英文电子书)


本篇文章阅读时间预计2分钟。


01

 display: none vs visibility: hidden

如下段代码所示,我们有三个红、蓝、绿的方块:


css部分

 
 

html部分

 
 640?wx_fmt=png 
 


首先我们先使用 display: none 属性隐藏蓝色的方块,如下段代码所示:

 
 640?wx_fmt=png 
 



如图所示,使用display: none,我们可以看出蓝色方块从中删除,中间的空位也被绿色的方块补位。


接着我们使用 visibility: hidden 属性隐藏蓝色方块,如下段代码所示:

 
 640?wx_fmt=png 
 


从上图我们看出,使用visibility: hidden,我们实现了蓝色方块的“隐藏”,中间的位置空缺保留。



02

Block vs Inline


Block块级属性默认填满父级元素内容区域,最常见的块级元素就是<div>,<p>,<ul>等。


Inline行内元素在一行文本内生成元素框,不打断所在的行。最常见的行内元素比如:<span>,<img>,<a>


首先我们先看下段没有CSS的html:

 
 640?wx_fmt=png 
 

从上图我们看出两个<p>块状元素占了两行,两个<span>两个行内元素占了一行。由此可以看出html元素都有个默认的display属性:block或inline。


以下是关于 Block 和 Inline 差异的总结:

block:

  • 默认100%占满父元素区域

  • 每个元素占一行

  • 可以设置width和height属性

  • 可以包含其它块级元素和行内元素。


如下代码对block的示意:

 
 

从中我们可以看出设置了元素的宽和高,每个红色方块会独占一行,如下图所示:


640?wx_fmt=png

inline

  • 按需占用空间

  • 不断行,并排显示

  • width,height, top-bottom margin 等属性不起作用

  • 可以是其它行内元素的父级。


如下段代码所示,我们更改<p>标签display的默认属性,让其成为行内元素:

 
 640?wx_fmt=png 
 


从上图所示,我们看出,<p>元素变成了行内元素,我们设置的宽和高并不起效,三个<P>元素排成一行。


03

Display: Inline-block


某些情况下,行内元素和块级元素并不能满足我们的设计需求,因此有了Inline-block这个属性,从属性的名字,我们就可以分析出其综合了两者的一些特征。


我们可以这样理解,这个属性是个行内属性,可以设置width和height属性或者我们可以理解成一个块级元素,不能换行。


为了理解这个属性,我们还是从一段代码开始,如下所示:

640?wx_fmt=png


从上面的效果图,我们可以看出,使用此属性后,我们让行内元素具备了宽高属性。



640?wx_fmt=gif


今天的文章就到这里,希望通过本篇文章,你明白了display这些基本属性的差异和用法。



周末福利


1

css3英文电子书


如果你热爱CSS3,寻找响应式多端设备页面的解决方案,这本书绝对是一个不错的选择——《WEB DESIGN WITH HTML5 AND CSS3》


作者Ben Frain,从1996年起就从事网页设计和开发工作,他现在就职于Bet365公司前端工程师一职。



2

黑客帝国原生英文电影


如何学英文?你试过看原生电影学英文吗?这个周末不妨试试,周末笔者推荐给大家一部程序员必看电影——《黑客帝国》


640?wx_fmt=jpeg


黑客帝国,影片由沃卓斯基兄弟(姐妹)执导,基努·里维斯、凯莉·安妮·莫斯、劳伦斯·菲什伯恩等主演。该片于1999年3月31日在美国上映。好莱坞异类“基努”的巅峰之作,曾经红极一时。该片在第72届奥斯卡金像奖上获得最佳音响、最佳电影剪辑、最佳音效剪辑、最佳视觉效果等多项大奖。


点击阅读原文,获取电影蓝光资源


精彩推荐

太惊艳了,这些画都是CSS的杰作!

css基础丨如何理解transform的matrix()用法

ES6基础丨let和作用域

ES6基础丨const介绍

ES6基础丨默认参数值

ES6基础丨展开语法(Spread syntax)

ES6基础丨解构赋值(destructuring assignment)

ES6基础丨箭头函数(Arrow functions)

ES6基础丨模板字符串(Template String)

ES6基础丨Set与WeakSet

ES6基础丨Map与WeakMap

ES6基础丨Symbol介绍:独一无二的值

ES6基础丨Object的新方法

ES6基础丨迭代器(iterator)

ES6基础丨生成器(Generator)

数据结构基础丨栈简介(使用ES6)

数据结构基础丨队列简介(使用ES6)

JavaScript基础丨前端不懂它,会再多框架也不过只是会用而已!

JavaScript基础丨你真的了解JavaScript吗?

JavaScript基础丨回调(callback)是什么?

JavaScript基础丨Promise使用指南

JavaScript基础丨深入学习async/await

JS加载慢?谷歌大神带你飞!(文末送电子书)

19年你应该关注这50款前端热门工具(上)

19年你应该关注这50款前端热门工具(中)

19年你应该关注这50款前端热门工具(下)

专注分享当下最实用的前端技术。关注前端达人,与达人一起学习进步!

长按关注"前端达人"

640?wx_fmt=gif 640?wx_fmt=jpeg


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值