css的display属性是前端开发中非常常见的属性,本文简单介绍下其中比较常用的属性值,即block、inline和inline-block。

HTML组件中呈现一片空白区域的组件都可当盒模型(box modal),而CSS则提供了display属性来控制盒模型的外观。

1. block类型(块)

这种盒模型的组件默认占据一行,允许通过CSS设置宽带、高度。

例如:<div .../><p ../.><form../><table../<h1><h6><ul../>等。

display:block
block 元素会独占一行,多个block元素会各自新起一行。默认情况下,block元素宽度会自动填满其父元素的宽度。
block元素可以设置width,height属性。块级元素及时设置了宽度,仍然是独占一行。
block元素可以设置margin和padding属性。

2. inline类型(内联)

这种盒模型的组件不会占据一行,不可以调整宽度、高度。

例如:<span../><a../> <strong../><em../><label../><input../><select../><textarea../><img../><br../>

CSS为display属性提供了block、inline两个属性值,可以改变HTML组件默认的盒模型。

display:inline

inline元素不会独占一行,多个相邻的行内元素会排列在同一行里,直到一行排列不下,才会新换一行,其宽度随元素的内容而变化。

inline元素设置width,height均无效。

inline元素的margin和padding属性,水平方向的padding-left、padding-right、margin-left、margin-right都产生边距效果,但竖直方向上的padding-top、padding-bottom、margin-top和margin-bottom不会产生边距效果。

3. inline-block类型

CSS还提供了一种inline-block盒模型,这种盒模型时inline模型和block模型的综合体:inline-block盒模型的元素不会占据一行,同时也支持width、height指定指定宽带及高度。并且允许它的左边和右边出现其他内容。

display:inline-block

简单来说就是将对象呈现为inline对象,但是对象的内容作为block对象呈现。之后的内联元素会被排列在同一行内。比如可以给一个link(<a>元素)inline-block属性,使其既有block的宽度高度特性、又具有inline的可同行性。

应用场合

很多时候我们必须让一些块元素并排显示,一般会想到浮动,但是块元素浮动设边距的时候在IE下会出现加倍的BUG,所以很多时候不得不把这个块元素套在一个内联元素里,然后给这个内敛元素浮动和边距。通过设置:display:inline-block,就将对象呈递为内联对象,但对象的内容作为块对象呈递。旁边的内联对象会被呈递在同一行内,允许空格。

说明:

block元素可以包含block元素和inline元素,但inline元素只能包含inline元素。要注意这个是一个大概的说法,每个特定的元素能包含的元素也是特定的,所以具体到个别元素上,这条规律是不适用的。比如p元素,只能包含inline元素,而不能包含block元素。

一般来说,可以通过display:inline和display:block的设置来改变元素的布局级别。

兼容性问题:IE6、IE7不支持inline-block,所以在IE中对内联元素使用display:inline-block理论上IE是不识别的,但会在IE下触发layout,从而使内联元素拥有了display:inline-block属性的表象。

解决IE6、IE7兼容性的方法:

首先设置inline-block触发块元素,具有了layout的特性,然后设置display:inline使块元素呈现内联元素,此时layout的特性不会消失。

直接设置display:inline,使用zoom:1触发layout。
兼容所有浏览器的方法是:

  .selector {
display : inline-block;
*display : inine;
*zoom:1;
}

本文只列出了display常见的三个属性,除此之外,display的属性值还有:inline-table、和表格相关的盒模型、list-item、run-in等。

原文地址:https://segmentfault.com/a/1190000016891690

CSS基础:block,inline和inline-block的更多相关文章

  1. CSS 基础 例子 display属性:block、inline和inline-block的区别

    HTML中块级元素(block)和行级元素(inline):比如div就是常见的块级元素,span就是常见的行级元素. 可以通过css的display属性来设置一个元素到底是块级,还是行级元素:dis ...

  2. [CSS3] CSS Display Property: Block, Inline-Block, and Inline

    Understanding the most common CSS display types of block, inline-block, and inline will allow you to ...

  3. CSS基础选择器(选择器的优先级),CSS样式块( 长度/颜色/显示方式/文本样式),盒模型组成,盒模型-block,盒模型布局

    CSS基础选择器 (1)id选择器:   #       =>  标签拥有 id="user"  属性 <style> #user { width: 200px; ...

  4. 关于block元素和inline元素

    呃...这个会不会太基础了.最近在复习,所以基础知识也不能够忽略. 根据HTML 4.01 规范,其描述如下(http://www.w3.org/TR/html401/struct/global.ht ...

  5. display:block、display:inline与displayinline:block的概念和区别

    总体概念 block和inline这两个概念是简略的说法,完整确切的说应该是 block-level elements (块级元素) 和 inline elements (内联元素).block元素通 ...

  6. 当inline元素包裹block元素时会发生什么

    经常有图片链接写法如下: <a href="www.baidu.com"><img src="baidu.jpg" /></a&g ...

  7. JavaScript 引擎基础:Shapes 和 Inline Caches

    JavaScript 引擎基础:Shapes 和 Inline Caches hijiangtao ​ 中国科学院大学 计算机应用技术硕士 260 人赞同了该文章 前言:本文也可以被称做 “JavaS ...

  8. 文件系统的block 数据库中的block 以及内存中的page基础知识汇总(自己理解 可能有误)

    1. 操作系统文件系统中的的block 文件系统中的block 是文件系统最小的读写单元,在HDD的磁盘时代, 一般block的大小可能与磁盘的扇区大小一致为 512bytes 也因为这个原因MBR启 ...

  9. 前端开发:css基础知识之盒模型以及浮动布局。

    前端开发:css基础知识之盒模型以及浮动布局 前言 楼主的蛮多朋友最近都在学习html5,他们都会问到同一个问题 浮动是什么东西?  为什么这个浮动没有效果?  这个问题楼主已经回答了n遍.今天则是把 ...

随机推荐

  1. 牛客网36-A,B题解

    A.Rabbit的字符串 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536K 64bit IO Format: %lld 题目描述 Rabbit得到了一 ...

  2. mac下配置php+mysql+nginx遇到的问题

    1.mysql:没有useradd和groupadd命令,好在原来的/etc/passwd有了mysql,www用户,/etc/group下也有了mysql,www用户组 2.nginx:编译ngin ...

  3. 部署到CentOS Net Core

    Net Core部署到CentOS 本文基于初次或再次尝试部署.Net Core应用到Linux服务器上,我尝试后自我总结的经验一个简单的Demo,尝试部署在Linux服务器上和跨服务器访问数据库. ...

  4. Ubuntu上源码安装golang并设置开发环境

    安装go #wget https://dl.google.com/go/go1.10.3.linux-amd64.tar.gz #tar -xzf go1.10.3.linux-amd64.tar.g ...

  5. 牛客网Java刷题知识点之关键字static、static成员变量、static成员方法、static代码块和static内部类

    不多说,直接上干货! 牛客网Java刷题知识点之关键字static static代表着什么 在Java中并不存在全局变量的概念,但是我们可以通过static来实现一个“伪全局”的概念,在Java中st ...

  6. Java选择排序算法

    package com.jckb; /**选择排序 * * @author gx *算法原理: *第一个数和后面每个数进行比较,如果大于后面的数就进行位置交换, *第一次比较结束后得到了最小值 */ ...

  7. 【转】Maven项目中将配置文件打包到jar包中

    参考博客:http://blog.csdn.net/ciedecem/article/details/10382275 问题: 项目中需要用到从文件中加载json数据,如图放在conf目录下. 程序中 ...

  8. java的三大特性之一继承概述

    0.继承-----注意事项 00.子类最多只能继承一个父类(指直接继承) 01.java所有的类都是Object的子类 02.JPK6.0中有202个包3777个类,接口,异常,枚举,注释和错误 03 ...

  9. JavaScript判断图片是否已经加载完毕的方法汇总

    在网上有很多关于判断图片是否已经加载完毕的文章,但是有的浏览器并不适合,下面小编给大家分享一些有关JavaScript判断图片是否已经加载完毕方法汇总,具体内容如下所示: 一.onload事件 通过监 ...

  10. web常见几种处理图标方法

    方法一: 用background制作小图标 像这样,拿到设计稿后把所有的图标放在一张图片上,利用background-position.width.height来控制图标的位置及大小. 代码: .ic ...