从宽高说起

从宽高说起,我们知道一个物体的大小是由长、宽、高三个方向的尺寸决定的,但是你想啊电脑显示器是一个平面的,而不是3维,另因网页大部分情况下只需要使用到2维,所以为了简单在CSS中只有宽和高的设置。

有了宽和高的概念以后,就会产生另外一个问题,如果内容超出宽和高以后是该显示还是隐藏呢?为了解决这个问题CSS提供了一个overflow属性,它允许你对元素内容超出后做相应的处理,然而很不幸的是不少人对overflow属性存在着误解,比如下面这段代码

<style>
.box{
width:200px;
}
span{
overflow:hidden;
text-overflow:ellipsis;
white-space:nowrap;
}
</style>
<div class="box">
<span>CSS逻辑思维</span>
</div>

这段代码的写作者希望当span中的内容超出一行后显示省略号,但是他却忽略了一个事实,overflow只在当内容超出元素所设置的宽或高才会起作用,而写作者并没有给span设置宽度(当然也设置不了,因为它是行内元素),而又因行内元素的宽高是由内容决定的,也就是它的宽和高是自适应的,因此这段代码是有问题的,有些人会奇怪为什么块元素不设置宽度也可以实现文本溢出隐藏,首先你一定要明白一个道理overflow属性只在内容超出元素所设置的宽高才可以使用,如果没有超出哪来的溢出一说?再则CSS也不知道你需要在什么时候隐藏,它只能是在宽和高不够了才去做处理,而块元素之所以可以是因为它是满足这个条件的,也就是说尽管你没有手动去设置宽度,但是块元素它本身就有宽度(默认父元素的宽)。

而我们再来看看行内元素

很明显它的宽高是自适应的。

这也就是为什么行内元素无法给文本设置text-align对齐方式的原因。

再说css中的box-sizing

为什么CSS要新增box-sizing这个属性呢?如果我们把场景切换到现实生活中,你会发现生活中,我们很少去说类似我要买一个宽200cm,高150cm,边框8cm的显示器,而是说宽200cm,高150cm(一般说几寸)。

而在CSS3之前我们是无法直接去设置一个元素的宽度的,因为元素的宽度是由width + padding + border-left + border-right相加而成的,我们平时在CSS中设置的width并不是元素真正的宽,而只是内容的宽度,然而更多的时候我们是希望width是包含padding和border的,这也是为什么在CSS3中需要加box-sizing这个属性。

这个box-sizing一出世又有些人对box-sizing存在着疑惑,为什么没有box-sizing:margin-box;这一条?我想反问一句:你家房子外面的地盘是你家的吗?把这句话拿到前面这个问题:margin是width的吗?默念3遍,当然要让width包含margin也不是不能实现,只是这种情况需求很小,而且也可以通过其他方式实现。

从逻辑思维中学习CSS,从宽高说起的更多相关文章

  1. WEB学习-CSS行高、字体,链接的美化以及背景

    行高和字号 CSS中,所有的行,都有行高.盒模型的padding,绝对不是直接作用在文字上的,而是作用在“行”上的. 单行文本垂直居中 文本在行里面是居中 其中,行高:盒子高; 需要注意的是,这个小技 ...

  2. web前端——实例中学习css,javascript

    最近闲暇时候在研究前端的样式和js,以前都是从w3school上看看那些选择器和DOM操作方法很少去实际做demo来研究,做的过程当中才真切感觉到纸上得来终觉浅,看得懂跟能做出东西完全两码事,尤其在定 ...

  3. 李洪强和你一起学习前端之(6)css行高,盒模型,外边距

    李洪强和你一起学习前端之(6)css行高,盒模型,外边距 复习昨天的知识 1.1css书写位置: 内嵌式写法 外联式写法 <link href = "1.css" rel = ...

  4. web中的CSS、Xpath等路径定位方法学习

    今天不到八点就到公司了,来的比较早,趁着有点时间,总结下web中的CSS.Xpath等路径定位定位的方式吧! 简单的介绍下xpath和css的定位 理论知识就不罗列了 还是利用博客园的首页.直接附上代 ...

  5. 开始学习css

    今天开始学习css:应用一本<HTML5与CSS3网页设计基础> 先学习css样式规则声明. Body{ color:blue} 对应:选择符:{声明属性:声明值}: Background ...

  6. 【图片版】学习CSS网格布局

    简言 CSS网格布局(Grid)是一套二维的页面布局系统,它的出现将完全颠覆页面布局的传统方式.传统的CSS页面布局 一直不够理想.包括table布局.浮动.定位及内联块等方式,从本质上都是Hack的 ...

  7. 【转】css行高line-height的一些深入理解及应用

    一.前言 前两天在腾讯ISD团队博客上看到一篇翻译的文章“深入理解css 行高”,是个不错的文章,学到了不少东西,建议您看看. 这里,我也要讲讲我对line-height的一些理解,所讲解的东西绝大多 ...

  8. vue—你必须知道的 js数据类型 前端学习 CSS 居中 事件委托和this 让js调试更简单—console AMD && CMD 模式识别课程笔记(一) web攻击 web安全之XSS JSONP && CORS css 定位 react小结

    vue—你必须知道的   目录 更多总结 猛戳这里 属性与方法 语法 计算属性 特殊属性 vue 样式绑定 vue事件处理器 表单控件绑定 父子组件通信 过渡效果 vue经验总结 javascript ...

  9. 学习 CSS 样式

    1.CSS浮动  :  http://www.cnblogs.com/zhongxinWang/archive/2013/03/27/2984764.html (1)一个重要结论:           ...

随机推荐

  1. SSL、TLS协议格式、HTTPS通信过程、RDP SSL通信过程(缺heartbeat)

    SSL.TLS协议格式.HTTPS通信过程.RDP SSL通信过程   相关学习资料 http://www.360doc.com/content/10/0602/08/1466362_30787868 ...

  2. 除了Office和wps,还有什么办公软件比较好用?

    一.不能没有的pdf软件 以下介绍的是PDF(Portable Document Format)常用的阅读.编撰以及其他工具.阅读工具1.Adobe AcrobatReader中文版应用平台:Wind ...

  3. httpd安装与配置(编译安装)

    httpd简介 httpd是Apache超文本传输协议(HTTP)服务器的主程序.被设计为一个独立运行的后台进程,它会建立一个处理请求的子进程或线程的池. 通常,httpd不应该被直接调用,而应该在类 ...

  4. LOJ-10108(欧拉回路+并查集)一个图至少用几笔画成

    题目链接:传送门 思路: 用并查集统计出每个区块奇数个节点的个数x,每个区块对笔画的贡献是max(x/2,1): 然后每个区块求和即可. #include<iostream> #inclu ...

  5. 中标麒麟(linux)下Qt调用python

    转自:https://blog.csdn.net/lwlgzy/article/details/83857297 http://www.cnblogs.com/jiaping/p/6321859.ht ...

  6. 2019swpuj2ee作业3

    静态页面: 在网站设计中,纯粹html格式的网页通常被称为“静态网页”,早期的网站一般都是由静态网页制作的.静态网页是相对于动态网页而言,是指没有后台数据库.不含程序和不可交互的网页.你编的是什么它显 ...

  7. MFC 多窗口通信时,使用RadioButton和Button时冲突问题

    最近项目需要我们实现在两个窗口间进行通信,其中有个小功能如图所示: 当我点击GDIProgram中的Button1时,会更新Dialog的Radio1和Radio2的状态. Dialog中的Radio ...

  8. [算法专题] Binary Tree

    1 Same Tree https://leetcode.com/problems/same-tree/ Given two binary trees, write a function to che ...

  9. 三菱蓝瑟CK4A

    日本JDM蓝瑟,而且还是MR的性能版,避震行程也是这么长的.证明这个车子就是这样设计的. 90年代拉力血统的车就这样? 东南厂国产的蓝瑟,原装避震是厦门开发生产,来自于台湾开发工业集团的全资子公司,而 ...

  10. 761. Special Binary String

    Special binary strings are binary strings with the following two properties: The number of 0's is eq ...