前端学习笔记

CSS 宽度与高度

2019-08-29  本文已影响0人  _ClariS_

前言:如果你写的 CSS 中经常出现 width 与 height,说明你写的 CSS 是有问题的

一、文档流(Normal Flow)



文档流就是文档内元素的流动方向

二、脱离文档流


  1. 什么是脱离文档流
      元素脱离文档流之后,将不再在文档流中占据空间,而是处于浮动状态(可以理解为漂浮在文档流的上方)。脱离文档流的元素的定位基于正常的文档流,当一个元素脱离文档流后,依然在文档流中的其他元素将忽略该元素并填补其原先的空间。

  2. 脱离文档流的几种方式

注意:position:relative 并不会脱离文档流,它依然占据原来的空间。

三、内联元素、块级元素的高度分别是由什么决定的



这里以 div 和 span 为例(div 和 span 默认无样式,宽高都为 0)

注意:line-height 的大小很难确定,它跟字体有关,参考文章 字体度量、line-height 和 vertical-align

四、实现水平垂直居中的几种方式



下面我从父元素与子元素的宽高固定情况来分类
  1. 父元素高度确定,子元素固定宽高
    子元素中设置
margin:auto;
position: absolute;
top:0;
right:0;
bottom:0;
left:0;

http://js.jirengu.com/qujelorame/1/edit?html,output

  1. 父元素高度不确定,子元素宽度确定
    只需要在父元素设置上下 padding 一样高即可让子元素垂直居中(用 padding 把父元素的高度给撑起来)
    http://js.jirengu.com/susaxafaga/1/edit?html,output

  2. 父元素高度确定,子元素不固定宽高
    父元素中设置

display: flex;
justify-content: center;
align-items: center;

http://js.jirengu.com/vudisequhi/3/edit?html,output

五、为什么不推荐乱写 height 和 width


  1. 因为宽高定死之后,如果文字变多,会出现奇怪的样式
  2. 因为宽高定死之后,如果用户缩小窗口大小,会出现滚动条,影响体验
  3. height 可以用 line-height 和 padding 来撑,这样写更灵活美观
  4. width: 100% 再加上 padding 就会撑出父元素之外,很难看
  5. 不写死宽高,页面就是响应式的。



最后是一些常用的例子:

  1. 如何实现文字对齐
  2. 导航demo
  3. word-break
  4. 单行文本溢出
  5. 多行文本溢出(搜索关键词 css mutli line text ellipsis)
  6. 文字垂直居中
  7. 一个居中的对话框
  8. margin合并问题
  9. 一个 1:1 的 div
上一篇下一篇

猜你喜欢

热点阅读