Display在官方定义:规定元素应该生成的框的类型。本文只重点分析常用的6个值:none、block、inline、inline-block、inherit、flex。其他table、list-item等都不再推荐使用。

一、None

此元素不会被显示。主要与visibility属性为hidden时相区分。

1) 当元素的none时,js可以获取此元素,但不能获取/设置此元素的可视化属性的值(但可以设置自定义属性的值),如Width、Height、background等Css属性的值,这也就表明当元素为none时,元素是不被浏览器渲染的。

2) 当元素的visibility值为hidden时,元素虽然不可见,但可以获取/设置元素的任何值,包含Css相关属性。这也就表明此时的元素是被浏览器渲染的(在文档流中是占有位置的),只是处于不可见的状态。

3) 示例代码如下:

Css代码:

#div01{ display: none;width: 200px;background: red;}#div02{visibility: hidden;width: 100px;}#div03{ width: 100px;}

Js/html代码:

<div id="div01" data-name="div01" > div01</div><div id="div02" data-name="div02" > div01</div><div id="div03" > div03</div><script type="text/javascript">window.onload = function(){var div01 = document.getElementById('div01');var div02 = document.getElementById('div02'); var div03 = document.getElementById('div03'); //output: div01:0 background:  name:div01console.log( 'div01:' + div01.offsetWidth + " background: " + div01.style.background + " name:" + div01.getAttribute("data-name"));//output: div02:100 name:div02console.log( 'div02:' + div02.offsetWidth + " name:" + div02.getAttribute("data-name"));//output: div03:100console.log( 'div03:' + div03.offsetWidth);div01.style.width = 1000;div01.setAttribute("data-name","div0101");div02.style.width  = "800px";div02.setAttribute("data-name","div0202");div03.style.width  = 800;//output: div01:0 background:  name:div0101console.log( 'div01:' + div01.offsetWidth + " background: " + div01.style.background + " name:" + div01.getAttribute("data-name"));//output: div02:800 name:div0202console.log( 'div02:' + div02.offsetWidth + " name:" + div02.getAttribute("data-name"));//output: div03:800console.log( 'div03:' + div03.offsetWidth);}</script>

二、Block

设置元素为块级元素,可应用盒子模型相关属性。默认Width会100%,Height自适应。Margin、padding都有效。如果没有占宽或高的子元素存在,则高度为零。

代码如下:

<html><head><style>#div01{background: red;}#div02{height: 100px;background: gray;}#div03{background: green;}</style></head><body><div id="div01" ></div><div id="div02" ></div><div id="div03" >div03</div></body>
</html>

效果截图:

三、inline

行内元素或者通过display:inline修饰为行内元素的都具有行内元素的行为。

1) 多个inline元素会排成一行,并列的多个inline元素之间会存在8个像素左右的间隔,8像素间隔解决办法:

a). Html文本有意识的都排成一行,如下代码所示:

<a>a01</a><a>a02</a>

b). 利用margin-left:-8px,也就是marginq负值实现,也可以在外层使用letter-spaceing和word-spaceing为负值的方式实现(此种试子元素需要重置被设置属性)

.inline{display: inline;background: red;margin: 0px;padding: 10px;margin-left: -8px;}

<div class="inline">inline01</div><div class="inline">inline02</div><div class="inline">inline03</div><div class="inline">inline04</div>

c). 包裹inline元素的外层元素加上font-size:0px和-webkit-text-size-adjust:none实现

a{background: red;  font-size: 14px;}   .overWidth{white-space: nowrap;border: 1px solid gray;font-size: 0px;-webkit-text-size-adjust: none;}

<div class="overWidth" ><a>a01</a><a>a000000002</a></div>

2) Inline元素的width和height无效

3) Inline元素的padding都有效,但margin左右有效,上下无效

4) Inline元素包裹inline元素,外层元素的width和height会被内部的撑开

.overWidth{display: inline;border: 1px solid gray;}

<div class="overWidth" ><a>a01</a><a>a000000002</a></div>

5) Block/inline-block元素包裹inline元素,默认超width自动换行,height撑开。

a) 强制不换行可以通过white-space:nowrap来实现,此时超width的就会浮出来,可以通过overflow:hidden和text-overflow:ellipsis配合实现省略显示。

.overWidth{white-space: nowrap;width: 100px;border: 1px solid gray;overflow: hidden;text-overflow: ellipsis;}

<div class="overWidth" ><a>a01</a><a>a000000002</a></div>

转载于:https://www.cnblogs.com/cqhaibin/p/5982468.html

深入理解和应用display属性(一)相关推荐

  1. html中display有哪些属性值,css中display属性是什么及其各个值的作用和用法

    当你查看别人写的css代码的时候,经常会看到display:block.none.inline.table等,那么在css中display属性到底是什么呢,都可以取什么值,每个值又有什么样的作用,到底 ...

  2. css display属性理解

    理解与应用css中的display属性 display属性是我们在前端开发中常常使用的一个属性,其中,最常见的有: none block inline inline-block inherit 下面, ...

  3. 深入理解display属性

    前面的话 display属性在网页布局中非常常见,但经常用到的仅仅是block.inline-block.inline和none等寥寥几个属性值,本文将详细介绍display属性的各个方面 定义 di ...

  4. html display布局,Web布局:display属性

    经过CSS盒模型和视觉格式化模型两个章节中的学习,我们有了一个清晰的概念.即在CSS中插何一个元素都是一个盒子,甚至是文本节点也是一个盒子(匿名盒子):都有自己的视觉格式化(不同的盒子).而其中CSS ...

  5. php中border属性,css中display属性和border属性常遇问题讲解

    本篇文章给大家带来的内容是关于css中display属性和border属性常遇问题讲解,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助.因为HTML很少有太复杂的问题,所以直接写一篇关于 ...

  6. 【CSS 定位之 display 属性】

    CSS 定位之 display 属性 1. display 属性: 设置 元素的 显示类型 / 框的类型 (元素和子元素的布局) ⑴ 设置 元素的显示类型 ( 框的类型 ) ⑵ 元素的显示类型 ⑶ 显 ...

  7. html中display属性是什么意思,HTML中display属性的属性值有哪些

    HTML中display属性的属性值有哪些 发布时间:2020-09-26 14:35:20 来源:亿速云 阅读:102 作者:小新 这篇文章主要介绍了HTML中display属性的属性值有哪些,具有 ...

  8. java display html_css html布局之display属性_动力节点Java学院整理

    1.HTML元素分类 HTML元素大题可分为内联(inline)元素和块(block)元素. 内联元素(inline) ①元素显示方式:"文本方式",1个挨着1个,不独自占有1行: ...

  9. CSS display 属性

    定义和用法 display 属性规定元素应该生成的框的类型. 说明 这个属性用于定义建立布局时元素生成的显示框类型.对于 HTML 等文档类型,如果使用 display 不谨慎会很危险,因为可能违反 ...

最新文章

  1. Dosbox+Masm汇编语言
  2. 追溯Ceres-Solver中CostFunction类方法
  3. 霍夫变换概述和标准霍夫变换
  4. Pytorch List Tensor转Tensor,,reshape拼接等操作
  5. 安装python3.8.0步骤_python3.8.0安装教程_后端开发
  6. 波司登的高端之路,难走!
  7. unit类型是什么?_面试官虚晃一枪:项目中有用过锁吗?能解释一下什么是AQS?...
  8. 金三银四产品人跳槽指南:这9本书帮你搞定升职加薪
  9. matlab 读取图片后分区域编号_你的第一个有限元求解器——仅十行MATLAB代码
  10. OpenStack 已死?
  11. Activity 的启动模式
  12. python 持续集成 教程_dotnet 部署 github 的 Action 进行持续集成|简明python教程|python入门|python教程...
  13. 操作系统原理基础知识
  14. 1999-2018年地级市经济增长数据(GDP、人均GDP、各产业产值占比等)
  15. Mybatis-Plus(连接Hive)
  16. 从阅读中记笔记的8个技巧
  17. J2EE技术简单介绍
  18. SmallJava V2.0 产品说明书(20210405)
  19. Type接口的基础知识
  20. excel 中 宏的使用

热门文章

  1. .Net开发人员应该下载的十种必备工具(一)
  2. React开发(154):注意div得写法
  3. Taro+react开发(33) Super expression must either be null or a function, not undefined
  4. 前端学习(3241):react生命周期forceUpdate
  5. 前端学习(2964):element-ui的制作
  6. [html] 当img标签中的src图片加载失败时,怎么让它变得更美观呢?
  7. [html] 页面布局时你使用最多的标签是什么?div吗?在什么情况下会使用到div?
  8. 工作95视频上传逻辑
  9. 工作81:图片间隙问题
  10. 前端学习(2447):数据筛选处理