继续开始我的css之旅吧。今天我们来说什么啊。构思了两天还是没有什么思路,但是学习的步伐我们不能停止下来。还是按照之前的计划来讲讲display,在讲这个之前我们还是按照老规矩来扯扯蛋,步子不能够迈大了。废话不说了。
问大家一个问题哈?块级元素和行级元素,你们知道吗?

什么是块级元素了?(div)是块级元素 什么是行级元素?(span)你能看出他们两则的区别吗? 先上图

可能有时候大家不是特别的注意他们直接的区别。下面我们来说一下他们具体的特性:

块级元素:

1:块级元素会独占一行,其宽度自动填满其父元素宽度
2 :块级元素可以设置 width, height属性。【注意:块级元素即使设置了宽度,仍然是独占一行的】
3:块级元素可以设置margin 和 padding。
行级元素:
1:行内元素不会独占一行,相邻的行内元素会排列在同一行里,知道一行排不下,才会换行,其宽度随元素的内容而变化
2:行内元素设置width,  height无效
3: 行内元素的水平方向的padding-left,padding-right,margin-left,margin-right 都产生边距效果,但是竖直方向的padding-top,padding-bottom,margin-top,margin-bottom都不会产生边距效果换句话说就是 水平方向有效,竖直方向无效
 
前面说了一个简单的例子现在能够看到他们其中存在的区别了吧。说道这里可能要需要补充 一点就是这个元素是个四不像的东西,可变元素。怎么判断他到底是什么(可变元素需要根据上下文的语境来决定他到底是块还是行)通俗点讲:

  • 块级元素一般用来搭建网站架构、布局、承载内容
  • 内联元素一般用来在网站内容中的某些细节或者部位,用以“强调、区分样式、上标、下标、锚点”等等。
你说了这么多东西和我们要讲的东西有半毛钱的关系,下面我们就来说说我们要讲的到底有几毛钱的关系。到底有没有关系了。如果没有关系我们说这个又有什么意义。
 其实你可以反过来想其实我们整个HTML页面不就是行级和块级,最主要的是他们可以通过display:inline|block 相互的转换,现在知道他们有什么卵关系了吧。
既然有关系了,那我们就需要好好的理一理他们直接深刻的关系。有没有很激动啊。 
其实他们的关系很复杂我们就讲讲几个比较简单的比较常用的,如果要深究的话建议自己去看看书.
下面我们来说Display这个东西属性太多了,没有办法一个一个说,我们来说说关键的几个none、block、inline、inline-block,其实也是平时我们说的最多的。
(1):inline
 这个就是文字和图片会经常用到的,我们可以打一个比方就是,他就是瓶子里面的液体,液体的特点就是没有形状没有大小的。他的大小完全是由装他的容器来决定的。
其实块和行是可以相互切换的,但是这里面有问题:这个属性用于定义建立布局时元素生成的显示框类型。对于 HTML 等文档类型,如果使用 display 不谨慎会很危险,因为可能违反 HTML 中已经定义的显示层次结构。他会破坏文档的结构所以请慎用。
哪有人就会问,那如果我要给他设计高度和宽度怎么办?
其实这个吗?我们下一章会介绍。这个先给大家看一个效果。如何实现发现没有float这个属性
inline元素的特点: 
和其他元素都在一行上;
高,行高及顶和底边距不可改变;
宽度就是它的文字或图片的宽度,不可改变。
(2)Block:
大家看看和上面的截图的却别是什么?内容的宽度?看见没有。现在能不能够理解到之前说的他的宽度和高度的区别了。其实我的理解Block就是一个盒子模型,他需要完全遵循盒子模型的特点。不懂得化请参考上一个节。谢谢
Block特点
总是在新行上开始;
高度,行高以及顶和底边距都可控制;
宽度缺省是它的容器的100%,除非设定一个宽度
请重点关注一下加粗的部分。
(3):inline-block:

inline-block顾名思义,它既有inline的特性,又有block的特性,大家可以想想一般的button、input是什么样子的。 那button举例子。我们在页面中输入若干个<button>,发现它们是“流”式排列的(可以对比一下若干个<div>的排列方式)。但是针对一个button,我们还可以自定义修改它的形状,这样就有“块”的特征。这个就是我们之前讲的四不像。

不知道大家有没有看出来他的特点啊。就是一个四不像。可是我们会在什么地方使用到了?

1. 按钮和文字排在一行

2. 按钮中文字与外边文字底部自动对齐 这个场景是不是我们经常会遇到啊。

其实我感觉啊只要你理解了这些东西的原来,才能够真真的使用上。在接下来的时候还会更新。期待下一篇博文吧。不知道大家清楚没有。谢谢大家看完,废话很多

参考:http://www.cnblogs.com/wangfupeng1988/p/4317153.html

http://dbear.iteye.com/blog/750950

css 浅析display属性的更多相关文章

  1. !!!css如何让img图片居中?css的display属性实现图片居中(代码实例)

    在我们开发前端页面的时候,为了让页面效果美观,会让图片呈现居中效果.那么css怎么让img图片居中显示呢?本篇文章给大家带来css如何让img图片居中?css的display属性实现图片居中(代码实例 ...

  2. Code笔记之:CSS+HTML display 属性

    display属性值:none 此元素不会被显示. block 此元素将显示为块级元素,此元素前后会带有换行符. inline 默认.此元素会被显示为内联元素,元素前后没有换行符. inline-bl ...

  3. CSS的display属性

    网页设计中最常用的标签p.div.h1-h6(默认为块级元素),span(默认为内联元素) 内联,内嵌,行内属性标签: 1.默认同行可以继续跟同类型标签: 2.内容撑开宽度 3.不支持宽高 4.不支持 ...

  4. (十二)学习CSS之display属性

    参考:http://www.w3school.com.cn/cssref/pr_class_display.asp 浏览器支持 所有主流浏览器都支持 display 属性. 注释:如果规定了 !DOC ...

  5. jquery控制css的display属性(显示与隐藏)

    jquery控制div的显示与隐藏,很方便的. 例如: $("#id").show()表示display:block, $("#id").hide()表示dis ...

  6. css的display属性小实验

    div与span是常用的盒子模型; 区别: div默认是垂直分布(独占一行)   span默认是水平分布(一行可以有多个) 通过float属性可以改变div容器的分布方式达到span容器的效果; 下面 ...

  7. CSS的Display属性可能的值

    none 此元素不会被显示. block 此元素将显示为块级元素,此元素前后会带有换行符. inline 默认.此元素会被显示为内联元素,元素前后没有换行符. inline-block 行内块元素.( ...

  8. CSS的display属性,显示或隐藏元素

    <html> <head> <script type="text/javascript"> function removeElement() { ...

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

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

随机推荐

  1. git diff 生成patch, git apply patch 打补丁方法说明,以及分支管理的简单操作。

    git diff 简易操作说明 先git log 查看commit ID, 记录你想要打的补丁的ID 比如说: git log commit 4ff35d800fa62123a28b7bda2a04e ...

  2. JSON Accelerator真是个好东西...

    支持OBJC,JAVA,Python,OBJC(Core Data),Python(Django) 并实现了NSCoding和NSCoping,方便归档和复制. 再也不用辛辛苦苦的写Model了.. ...

  3. APUE学习--第三版apue编译

    第三版apue编译:     1. 首先在  http://www.apuebook.com/   下载源码解压:      tar zxvf src.3e.tar.gz 看完Readme可知,直接执 ...

  4. mysql 日期查询 总结

    1,对一天24小时内每小时的数据量求和: SELECT IFNULL(SUM(CASE HOUR(时间字段) WHEN 0 THEN 1 ELSE 0 END),0)as '0', IFNULL(SU ...

  5. tornado中将cookie值设置为json字符串

    不熟悉,找了很久,能FQ的话, https://groups.google.com/forum/#!topic/python-tornado/9Y--NgwjP_w 2楼有解释. tornado.es ...

  6. java 保留字符串数字的位数,不够前面补0

    @Test public void test() { this.printToConsole(autoGenericCode("10011")); this.printToCons ...

  7. C++11智能指针读书笔记;

    智能指针是一个类对象,而非一个指针对象. 原始指针:通过new建立的*指针 智能指针:通过智能指针关键字(unique_ptr, shared_ptr ,weak_ptr)建立的指针 它的一种通用实现 ...

  8. Angular2 Http

    1. 使用Http 绝大部分应用程序都会和后台服务打交道,Http是浏览器和服务器之间通讯的主要协议,通过Http调用来访问远程服务器上相应的 Web API. HttpModule 并不是 Angu ...

  9. MySQL 5.6 OOM 问题解决分享【转】

    本文来自:杨德华的原创分享 | MySQL 5.6 OOM 问题解决分享 延伸阅读:Linux的内存回收和交换 当遇到应用程序OOM的时候,大多数时候只能用头疼来形容,应用程序还可以通过引流来临时重启 ...

  10. 高可用thrift客户池的实现详解

    最近,公司要求将组内的thrift客户端组件推广至公司内使用.基本的要求如下: 1.高可用 2.集成名称服务,也就配置文件支持服务发现 3.解耦,客户端和高可用组件解耦,简单来说就是,如果以后要切换其 ...