CSS深入浅出-宽度与高度

文档流

文档流就是文档内元素的流动方向。
内联元素从左到右流动,遇到阻碍分行继续流。
块级元素从上往下流动,每一个块独占一行。

CSS高度

设计字体时要给一个建议行高,所以除了用line-height固定行高外,很难写死字体高度

内联元素的宽高
  • 宽度
    内联元素的宽度是由里面的字个数决定的
  • 高度
    内联元素的高度是由行高(line-height)决定的,padding和margin无法改变其高度。
块级元素的宽高
  • 宽度
    块级元素的宽度是由里面的字个数,以及内外边距决定的。
  • 高度
    块级元素的高度是由里面文档流的元素高度总和决定的

小技巧

居中

  • 文字垂直居中
    使用padding属性可以实现垂直居中
  • 文字水平居中
    使用text-align:center;属性可以实现水平居中

两端对齐

  • 一段话
    1.使用text-align:justify;可以让一段话两端对齐,但如果只有一行,是不能对齐的
    2.给元素加上::after伪类,在该伪类里使用width100%,给原话加上text-align:justify;,同时两端属性均加上display:inline-block;来两端对齐
  • 举例
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>JS Bin</title>
  <style>
    div{
      font-size:20px;
    }
    span{
      display:inline-block;
      text-align:justify;
      line-height:20px;
      height:20px;
      width:5em;
      overflow:hidden;
    } 
    span::after{
      content:'';
      display:inline-block;
      width:100%;
      text-align:justify;
    }
  </style>
</head>
<body>
  <div>
    <span>姓名</span><br><span>联系方式</span>
  </div>
</body>
</html>

文字打断

因为中英文语言上的区别,默认的文字打断属性是不同的,可以通过改该属性实现英文分行

  • 英文
    默认属性为word-break:break-word;,通过改该属性来实现英文分行
    也可以在单词中加上连字符"-"来实现英文分行
  • 中文
    默认属性是word-break:break-all;,即为每个字都分开来算

inline空格问题

只要是inline元素,两个元素间不相邻的话一定会有空格,可以通过脱离文档流来解决这个问题

margin合并问题

假设一个父元素包裹住一个子元素,如果父子元素都有margin属性,而父元素没有挡住子元素的东西,那么子元素的margin会和父元素的margin合并起来
使用padding或者block可以解决这个问题

文字省略效果怎么做

  • 单行文本
div{
  white-space:nowrap;  //不换行
  overflow:hidden;    //超出div边界部分隐藏
  text-overflow:ellipsis;  //超出部分文本以省略号显示
}
  • 多行文本
  1. 直接google关键词"css multi line text ellipsis"然后点击第一条关键词,直接抄代码,略改一下以完成需求。
  2. 抄下方代码
div{
overflow:hidden;  //超出div边界部分隐藏
display:-webkit-box;
-webkit-line-clamp:2; //显示两行文本
-webkit-box-orient:vertical;
}

实现一个1:1的div

  • 以下代码
div{
padding-top:100%;
}

border调试大法

在调试css之前,给所有div都加上一个1px的border用来看,方便调试

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,686评论 1 92
  • HTML 5 HTML5概述 因特网上的信息是以网页的形式展示给用户的,因此网页是网络信息传递的载体。网页文件是用...
    阿啊阿吖丁阅读 9,721评论 0 0
  • CSS 是什么 css(Cascading Style Sheets),层叠样式表,选择器{属性:值;属性:值}h...
    崔敏嫣阅读 5,345评论 0 5
  • 年龄长了,快乐没有长,焦虑和烦恼长了 。又好像总会在过年的时候焦虑。一年的工作结束,该好好的享受生活,但是为什么这...
    雨梳草田阅读 1,937评论 0 0
  • 07124 陈少琼 给本《一条聪明的鱼》,作者:英国,克里斯•沃梅尔。 在很久很久以前,在我们所有人都还没出生,以...
    陈少琼阅读 3,800评论 0 1