如何理解CSS中的display:inline-block属性?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何理解CSS中的display:inline-block属性?相关的知识,希望对你有一定的参考价值。

对所有的块元素都没有意义,块元素的dispaly属性默认值为block,没必要再显式定义——除非你之前对块元素的display属性重新定义过。
===========================
多罗嗦一句:
display:block;比较常用于<a><span>这两个标签——因为这两个标签非块元素,如果不用display:block定义一下,那么定义width、height等和长宽相关的css属性时会发现完全不生效。你可以实际写几行简单代码感受一下。
===========================
是不是div里就没有必要写display:block呢?通常情况下是没有必要的。
常见的特殊情况:之前曾对div设置过display:hidden。
参考技术A 没有该元素将不被显示。
块元素将显示为一个块级元素,这个元素之前和之后的换行。

内嵌默认值。此元素会显示内联元素,元素周围的换行符。元素

inline-block的内联块。 (CSS2.1新值)

该元素的列表项将显示为一个列表。

运行在此元素的背景下,一个块级元素和内联元素。

紧凑的CSS值紧凑,但由于缺乏广泛支持,已经从CSS2.1中删除。

标记CSS的标记值,但由于缺乏广泛支持,已经从CSS2.1中删除。

围着桌子一个新行的表的一个块级元素表显示(类似)。

内联表元素的内联表,以显示(类似)围着桌子换行。的

表行基作为一个分组中的一个或多个要显示的行(类似于)的元素。的

表报头组中的一个或多个要显示的行(类似于中)作为分组的元素。的

元素的表页脚基作为一个分组中的一个或多个要显示的行(类似于标记)。

表行元素表行(类似的)的。

该元素的表 - 列组一组的一个或多个列显示(类似)。

表列的元素作为一个单元格的列表单元格(类似的)

该元素作为一个表格单元格显示(的类似和)

表标题这个元素作为表格的标题显示(类似)
继承,这项规定应该从父元素继承的显示属性值。本回答被提问者采纳
参考技术B

display:规定元素的类型。

常用的类型有以下几种:

1、none:隐藏类型

将元素设置为隐藏类型,元素存在于html中,但不显示出来。

2、block:块类型

无论元素本身类型是块元素还是行内元素,设置了display: block;,浏览器都会将该元素以块元素类型来解析。

3、inline:行内类型

无论元素本身类型是块元素还是行内元素,设置了display: inline;,浏览器都会将该元素以行内元素类型来解析。

4、inline-block:行内块类型

将当前元素设置为行内元素来解析,但同时拥有块元素的特性。最常用的就是替代float属性。元素即跟随在前一个元素后面(前提是网页宽度足够),又支持块元素的特性(比如设置宽和高)。

参考技术C 举例:
<a>标签1</a><a>标签2</a><a>标签3</a>
a标签本来就是内联
这样写,他出来效果就是--------标签1标签2标签3
但如果你想要定义宽度,不加块状是起不来作用的,都是单单加块状(display:block),他又换行了,所以这时加display:inline-block 就起到很大作用,内联块状,宽度既能实现,又能不换行...
awidth:100px; display:inline-block

有时候解决ie6双倍像素撑开,display:inline不够用,也会用到这个属性

----------------
我去...浪费我时间...真手贱追问

我勒个去 谁叫你慢了一步啊

追答

没事,你能理解就好,以后直接百度搜索就行,理论的东西,百度一大堆...

关于CSS的个人理解

CSS的个人理解

一、概念

层叠样式表,主要由属性和属性值(value)组成。(虽然HTML、CSS对代码大小写不敏感,但是属性和属性值对代码大小写是敏感的)

二、工作方式

1.工作原理

由浏览器将CSS和html分别转化为文档对象,组合为DOM文档对象模型,标记语言中的每个元素、属性、文字片段都是DOM树中的一个节点,再由浏览器转换显示。

2.如何应用

(1)内联样式

优先级最高,但由于会造成代码冗余及代码更新任务庞大,一般不采用。

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>My CSS experiment</title>
  </head>
  <body>
    <h1 style="color: blue;background-color: yellow;border: 1px solid black;">Hello World!</h1>
    <p style="color:red;">This is my first CSS example</p>
  </body>
</html>

(2)内部样式表

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>My CSS experiment</title>
    <style>
      h1 {
        color: blue;
        background-color: yellow;
        border: 1px solid black;
      }

      p {
        color: red;
      }
    </style>
  </head>
  <body>
    <h1>Hello World!</h1>
    <p>This is my first CSS example</p>
  </body>
</html>

(3)外部样式表

单独建立一个.css文档
易于代码更新,减少代码冗余。作为新手,这一点也是必须要做到的。

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>My CSS experiment</title>
    <link rel="stylesheet" href="style.css">
  </head>
  <body>
    <h1>Hello World!</h1>
    <p>This is my first CSS example</p>
  </body>
</html>

三、语法内容

1.css声明

格式:“property : value”
属性(property)与属性值(value)单词拼写采用美式标准。

2.css声明块

格式:“{property : value; property : value;}”
“;”的丢失最易导致错误。

3.css选择器和规则

格式:“selector {property : value; property : value;}”

(1)层叠(cascade)

1)简单选择器

元素选择器 p
类选择器 .class
ID选择器 #id
通用选择器 *
并且选择器 p.class#id
并列选择器 p,.class,#id

2)层次选择器

后代选择器 parent son,使用空格分割两个选择器
子代选择器 parent>son,使用>分割两个选择器
下一个兄弟选择器 selector+selector,使用+分割两个选择器
之后所有兄弟选择器 selector~selector,使用~分割两个选择器

3)属性选择器(form表单多用)

selector[property]
selector[property=value]
selector[property*=value]
selector[property^=value]
selector[property$=value]
selector[property~=value]

4)伪类选择器

子元素
:first-child
:nth-child()
:first-of-type
状态
:hover
:active
(顺序LVHA:link visited hover active)
:focus

5)伪元素选择器

::after 常用于清除浮动
::before
::first-letter
::first-line

6)特性值:

!important(改变了CSS方式,尽量绕开!)
放在一段style中(1000)
id(100)
.class或伪类或属性选择器(10)
元素选择器或伪元素选择器(1)
后者覆盖前者(按照顺序)

(2)继承

这里不多叙述…………

4.布局

(1)正常布局流

1)div行及元素
2)span块级元素

(2)浮动布局

float:left;
float:right;
clear:both;(清除左右浮动,该元素会换行)

*块级元素一旦浮动之后:
1)脱离了当前文档流,对父级元素失去了支撑的作用,后面的非浮动元素会插入到浮动元素的下面。
2)浮动元素的宽高默认由其内容所决定,但是我们可以为其指定宽高。
3)当浮动元素无法承载子元素的时候,子元素会在下一行显示。
4)浮动元素的margin无法合并。

*浮动引发的问题:
1)子元素浮动会失去对父元素的支撑
解决方案:在所有子元素的末尾添加一个空元素,该空元素须clear:both;
2)如果为子元素的宽度指定绝对值,并且子元素具有边框,在缩放浏览器的时候会错位
解决方案:

1.box-sizing:border-box;
2..right {margin-left:100px;}

(3)定位布局

1)静态定位
2)相对定位

相对于该元素原先位置进行移动

relative:
top
right
bottom
left

3)绝对定位

相对于该元素最近的定位父元素位置进行移动

absolute:
top
right
bottom
left

4)固定定位

fixed

(4)伸缩盒布局

display:flex;

以上是关于如何理解CSS中的display:inline-block属性?的主要内容,如果未能解决你的问题,请参考以下文章

Sass--运算

如何理解CSS中的display:inline-block属性?

深入理解CSS定位中的偏移

关于CSS的个人理解

理解css布局和BFC

理解css布局和BFC