CSS基础:block,inline和inline-block
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的更多相关文章
- CSS 基础 例子 display属性:block、inline和inline-block的区别
HTML中块级元素(block)和行级元素(inline):比如div就是常见的块级元素,span就是常见的行级元素. 可以通过css的display属性来设置一个元素到底是块级,还是行级元素:dis ...
- [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 ...
- CSS基础选择器(选择器的优先级),CSS样式块( 长度/颜色/显示方式/文本样式),盒模型组成,盒模型-block,盒模型布局
CSS基础选择器 (1)id选择器: # => 标签拥有 id="user" 属性 <style> #user { width: 200px; ...
- 关于block元素和inline元素
呃...这个会不会太基础了.最近在复习,所以基础知识也不能够忽略. 根据HTML 4.01 规范,其描述如下(http://www.w3.org/TR/html401/struct/global.ht ...
- display:block、display:inline与displayinline:block的概念和区别
总体概念 block和inline这两个概念是简略的说法,完整确切的说应该是 block-level elements (块级元素) 和 inline elements (内联元素).block元素通 ...
- 当inline元素包裹block元素时会发生什么
经常有图片链接写法如下: <a href="www.baidu.com"><img src="baidu.jpg" /></a&g ...
- JavaScript 引擎基础:Shapes 和 Inline Caches
JavaScript 引擎基础:Shapes 和 Inline Caches hijiangtao 中国科学院大学 计算机应用技术硕士 260 人赞同了该文章 前言:本文也可以被称做 “JavaS ...
- 文件系统的block 数据库中的block 以及内存中的page基础知识汇总(自己理解 可能有误)
1. 操作系统文件系统中的的block 文件系统中的block 是文件系统最小的读写单元,在HDD的磁盘时代, 一般block的大小可能与磁盘的扇区大小一致为 512bytes 也因为这个原因MBR启 ...
- 前端开发:css基础知识之盒模型以及浮动布局。
前端开发:css基础知识之盒模型以及浮动布局 前言 楼主的蛮多朋友最近都在学习html5,他们都会问到同一个问题 浮动是什么东西? 为什么这个浮动没有效果? 这个问题楼主已经回答了n遍.今天则是把 ...
随机推荐
- Codeforces Round #432 (Div. 2, based on IndiaHacks Final Round 2017) C
You are given set of n points in 5-dimensional space. The points are labeled from 1 to n. No two poi ...
- 15 Puzzle LightOJ - 1121
https://cn.vjudge.net/problem/LightOJ-1121 #include<cstdio> #include<algorithm> #include ...
- NET Core Web发布包
给ASP.NET Core Web发布包做减法 https://www.cnblogs.com/sheng-jie/p/9122582.html 1.引言 紧接上篇:ASP.NET Core Web ...
- Jexus 5.8.2
Jexus 5.8.2 正式发布为Asp.Net Core进入生产环境提供平台支持 Jexus 是一款运行于 Linux 平台,以支持 ASP.NET.PHP 为特色的集高安全性和高性能为一体的 ...
- Swagger 2.0 集成配置
传统的API文档编写存在以下几个痛点: 对API文档进行更新的时候,需要通知前端开发人员,导致文档更新交流不及时: API接口返回信息不明确 大公司中肯定会有专门文档服务器对接口文档进行更新. 缺乏在 ...
- 获取url的参数值
var url=location.search; //获取url中从?开始的所有字符 var theRequest=new Object();//定义一个对象来存放url中的参数 if( url.i ...
- javascript组件封装中一段通用代码解读
有图有真相,先上图. 相信很多想去研究源码的小伙伴一定被这段代码给吓着了把,直接就打消了往下看下去的想法.我刚开始看的时候也是有点一头雾水,这是什么东东这么长,但是慢慢分析你就会发现其中的奥秘,且听我 ...
- 使用PowerShell 获取azure image publisher offer sku 信息
使用azure powershell 获取指定区域的可用镜像 publisher offer sku信息 param ( [parameter(Mandatory = $false)] $Locati ...
- SQL Server一个特殊的阻塞案例分析2
最近发现一个非常奇怪的阻塞问题,如下截图所示(来自监控工具DPA),会话583被会话1036阻塞,而且阻塞发生在tempdb,被阻塞的SQL如下截图所示,会话等待类型为LCK_M_S 因为DPA工具不 ...
- python爬虫之路——初识数据库存储
非关系型数据库:MongoDB.关系型数据库:MySQL 关系型和非关系型的区别: 安装: 使用: 应用场景: mongoDB是一种非关系型数据库,分为四大类:键值存储数据库,列存储数据库,文档型数据 ...