1. 程式人生 > >CSS垂直水平居中,display:flex,佈局,文字屬性的一些零碎

CSS垂直水平居中,display:flex,佈局,文字屬性的一些零碎

1.
body的height不可少,如body{height:100%},否則子元素會不認,如果子元素的高直接以百分比寫的話,會不顯示。因為識別不出來。
寬度則不會,因為瀏覽器的寬度是固定的,高度會滾,不固定。

2.
border-sizing其實是將預設的content-sizing轉為了老ie的盒子模型
如果元素float 可以通過轉為該模式,讓多個元素在width相加===1時控制在一行上

3.
display:flex
彈性佈局類似於word中的 按內容分佈表格 的意思。按內容來自動分配。

為什麼在body中定位會失效?
jusitify-content:Center 控制水平居中 沒有問題
但align-items:center 控制垂直居中 就失效了

因為body沒有控制大小和絕對定位!

body{
  height: 100%;
  width: 100%;
  display: flex;
  justify-content:center;
  position: absolute;
  align-items:center;
}

這裡position 必須和height,width一起配合來用,哪個缺少,相應位置上的定位就達不到了。

如果是一個普通的div呢?

div
{ width:300px;
height:230px;
  background:yellow;
display:flex;
align-items:center;
justify-content
:center
; }
p{ width:100px; height:70px; border:1px solid red; }

完全可以,不用定位!
有沒有margin, padding 不會影響居中的狀態,仍然是居中,永遠是居中。
去掉height , width之後,外框就變成了一個根據內容(裡面的diva啊,啥啊,之類的)靈活變化大小的容器。(不重要:預設一般有margin沒padding。)

4.
word-spacing屬性只能用於p元素,div不認,同理letter-spacing

5.
vw 是viewport的寬度,vh是viewheight的高度
vmin,vmax是其最小值
vw, vh, vmin, vmax:IE9+區域性支援,chrome/firefox/safari/opera支援,iOS safari 8+支援,Android browser4.4+支援,chrome for android39支援

6.
in firefox , we should set background-attachment as”fixed” to locate it.

7.
圖片需要用px定位和指定大小,而包裹文字的div需用em, rem來控制

8.
background-size中,元素定位的其實不是父元素,而就是本身的div,比如:
這裡寫圖片描述

顯然,圖片背景的100%是對應的它所在的div。
background-size, background-origin 都是針對圖片,如果是顏色背景的話,都不適用。

直接寫background屬性的話,會重寫之前的各分屬性,最好先寫個總的,再一個一個新增。

利用background-clip可以直接在div中呈現一個水平、垂直居中的方塊:

div
{
width:300px;
height:300px;
padding:50px;
background-color:yellow;
background-clip:content-box;
border:2px solid #92b901;
}