CSS - 核心技術

一、浮動float

  • 讓原來的元素,可以脫離正常的文檔流,實現左右排列,不設置寬度就是最小寬度。
  • float 其實是類似 iOS 中的 collectionView 或者說 iOS 的collectionView 就是借鑒 float 創建的。原理可以這樣理解,一個大塊內包含多個小塊,多個小塊可以按照流水布局。
  • 三個取值:
    • none:設置對象不浮動
    • left:設置對象浮在左邊
      • 代碼:
<!DOCTYPE html>
<html>
<head>
    <title>神奇的float</title>
    <meta charset="UTF-8">
    <style type="text/css">
    body {
        margin: 0;
    }
    .container {
        border: 1px solid blue;
        height: 300px;
        width: 250px;
    }
    div {
        height: 100px;
        float: left;
    }
    /*如果塊級元素不設置寬,默認會充滿這行,但是會默認有一個margin(相對的距離),可以將body的margin設為0*/
    .first {
        background-color: red;
    }
    .second {
        background-color: blueviolet;
    }
    .third {
        background-color: orange;
    }
    .n {
        background-color: yellow;
    }
    </style>
</head>
<body>
    <div class="container">
        <div class="first">
            第一個div
        </div>
        <div class="second">
            第二個div
        </div>
        <div class="third">
            第三個div
        </div>
        <div class="n">
            第四個div
        </div>
    </div>
</body>
</html>
    * 效果圖(外部為藍色邊框)
float2.png

- right:設置對象浮在右邊
* 代碼

<!DOCTYPE html>
<html>
<head>
    <title>神奇的float</title>
    <meta charset="UTF-8">
    <style type="text/css">
    body {
        margin: 0;
    }
    .container {
        border: 1px solid blue;
        height: 300px;
        width: 250px;
    }
    div {
        height: 100px;
        float: right;
    }
    /*如果塊級元素不設置寬,默認會充滿這行,但是會默認有一個margin(相對的距離),可以將body的margin設為0*/
    .first {
        background-color: red;
    }
    .second {
        background-color: blueviolet;
    }
    .third {
        background-color: orange;
    }
    .n {
        background-color: yellow;
    }
    </style>
</head>
<body>
    <div class="container">
        <div class="first">
            第一個div
        </div>
        <div class="second">
            第二個div
        </div>
        <div class="third">
            第三個div
        </div>
        <div class="n">
            第四個div
        </div>
    </div>
</body>
</html>
    * 效果圖
float-right.png
  • 為什么說是流水布局呢?
    • 如果我們不指定外部承載多個 div 的容器的寬度,那么容器會自動給一個合適的寬度,像這樣


      float1.png
    • 如果我們給外部的容器寬度設置了一個小于4個div寬度的合,那么布局就會按倒序向下排列,這個過程也稱為流水。

二、定位position

  • relative
    • 官方:即使偏移,位置還在。實質就是靠近最近的元素進行偏移,不分定位。
    • 解釋:可以理解為讓自身元素的原點(0,0)進行偏移(左上),相對于自己移動
  • absolute
    • 官方:偏移了,位置就沒了。靠最近的元素是 relative/absolute 定位進行偏移。
    • 解釋:absolute 進行偏移的時候默認先去尋找外面position屬性設為 absolute 或者 relative 的元素,如果有相對 它進行偏移,如果沒有相對于瀏覽器左上角(0,0)進行偏移。
  • fixed:相對于瀏覽器的窗口的位置,沒有依賴感。
    • 代碼:
<!DOCTYPE html>
<html>
<head>
    <title></title>
    <meta charset="UTF-8">
    <style type="text/css">
    div {
        height: 100px;
        width: 100px;
    }
        .rel {
        background-color: orange;
        /*display: inline-block;*/
    }
        .abs {
        background-color: green;
        /*display: inline-block;*/
                float: left;
    }
    .abs1{
        height: 150px;
        width: 150px;
        background-color: black;
        /*display: inline-block;*/
        float: left;
    }
    .outer{
        height: 200px;
        width: 200px;
        background-color: aqua;
        /*display: inline-block;*/
        float: left;
    }
    .fix{
        position: fixed;
        height: 100px;
        width: 100px;
        left: 20px;
        top: 30px;
        background-color: red;
    }
    </style>
</head>
<body>
<div class="fix">我不動</div>
</br></br></br></br></br></br></br></br></br></br></br>
</br></br></br></br></br></br></br></br></br></br></br>
</br></br></br></br></br></br></br></br></br></br></br>
</br></br></br></br></br></br></br></br></br></br></br>
    <div class="outer"> 
        <!-- <div class="rel"></div> -->
    </div>
    <div class="abs"></div>
    <div class="abs1"></div>
</body>
</html>
- 效果圖
fixed.gif
  • 多個 display:inline-blockdiv 元素排列,默認會下邊對齊,而且中間會有間距:
    • 代碼
<!DOCTYPE html>
<html>
<head>
    <title></title>
    <meta charset="UTF-8">
    <style type="text/css">
    div {
        height: 100px;
        width: 100px;
    }
    .rel {
        background-color: orange;
        display: inline-block;
    }
    .abs {
        background-color: green;
        display: inline-block;
    }
    .abs1{
        height: 150px;
        width: 150px;
        background-color: black;
        display: inline-block;
    }
    .outer{
        height: 300px;
        width: 300px;
        background-color: aqua;
        display: inline-block;
    }
    </style>
</head>
<body>
    <!-- <div class="outer">  -->
        <div class="rel"></div>
    <!-- </div> -->
    <div class="abs"></div>
    <div class="abs1"></div>
</body>
</html>
- 效果圖
效果圖1.png
  • 如果想讓它們無間距的上邊對齊,可以全部添加float屬性:
    • 代碼,這里其實不用設置 display 屬性,只設置 float 就可以了,因為 float 也可以將塊級元素轉成行內元素。
<!DOCTYPE html>
<html>
<head>
    <title></title>
    <meta charset="UTF-8">
    <style type="text/css">
    div {
        height: 100px;
        width: 100px;
    }
    .rel {
        background-color: orange;
        /*display: inline-block;*/
    }
        .abs {
        background-color: green;
        display: inline-block;
        float: left;
    }
    .abs1{
        height: 150px;
        width: 150px;
        background-color: black;
        display: inline-block;
        float: left;
    }
    .outer{
        height: 200px;
        width: 200px;
        background-color: aqua;
        display: inline-block;
        float: left;
    }
    div.outside{
        height: 700px;
        width: 700px;
        float: left;
    }
    </style>
</head>
<body>
<div class="outside">
    <div class="outer"> 
        <!-- <div class="rel"></div> -->
    </div>
    <div class="abs"></div>
    <div class="abs1"></div>
</div>
</body>
</html>
- 效果圖
效果圖2.png

三、行高line-height

  • normal 默認。設置合理的行間距,允許內容頂開或溢出指定的容器邊界。
  • number 設置數字,此數字會于當前的字體尺寸相乘來設置行間距。
  • length 設置固定的行間距,不允許負值。
  • % 基于當前字體尺寸的百分比行間距,不允許負值。
  • inherit 規定你改改從父元素繼承 line-height 屬性的值。
  • 注意:html 默認字體 16px.

四、水平居中與垂直居中

  • 水平居中

  • 垂直居中

  • 示例:

    • 文字居中代碼
<!DOCTYPE html>
<html>
<head>
    <title></title>
    <meta charset="UTF-8">
    <style type="text/css">
    #mycenter {
        height: 400px;
        width: 300px;
        background-color: red;
        /*line-height: 300px;*/
        /*文字垂直居中,試用于一行文字*/
        text-align: center;
        /*水平居中*/
        margin-left: auto;
        margin-right: auto;
        display: table;
        /*設置居中*/
/*position: absolute;
        top: 50%;
        left: 50%;
        margin-top: -200px;
        margin-left:-150px;*/
    }
    /*#mycenter1{
        height: 300px;
        width: 400px;
        background-color: red;
        line-height: 300px;文字垂直居中,試用于一行文字
        text-align: center; 水平居中
        float: left;
        margin-left: 10px;
    }*/
    .inner{
        display: table-cell;
        vertical-align: middle;
        /*width: 300px;*/
        /*height: 100px;*/
        background-color: orange;
        text-align: center;
    }
    </style>
</head>
<body>
        <div id="mycenter">
            <div class="inner">
            啊啊啊啊啊啊啊啊啊啊不sdr不不不不不不不不不難男男女女男男女女男男女女是事實上事實上是啊啊啊啊啊啊啊啊啊啊不不不不不不不不不不不難男男女女男男女女男男ttt女女是事實上事實上是啊啊啊啊啊啊啊啊啊啊不不不不不不不不不不不難男男女女男男女女男男女女是事實上事實上是
<!-- <img src="https://www.baidu.com/img/bd_logo1.png" height="127"> -->
        </div>
    </div>
    <!-- <div id="mycenter1">
啊啊啊啊啊啊啊啊啊啊不sdr不不不不不不不不不難男男女女男男女女男男女女是事實上事實上是啊啊啊啊啊啊啊啊啊啊不不不不不不不不不不不難男男女女男男女女男男ttt女女是事實上事實上是啊啊啊啊啊啊啊啊啊啊不不不不不不不不不不不難男男女女男男女女男男女女是事實上事實上是
</div> -->
</body>
</html>
-  效果圖
文字居中.png
  • 圖片居中
    • 代碼
<!DOCTYPE html>
<html>
<head>
    <title></title>
    <meta charset="UTF-8">
    <style type="text/css">
    #mycenter {
        height: 400px;
        width: 300px;
        background-color: red;
        /*line-height: 300px;*/
        /*文字垂直居中,試用于一行文字*/
        text-align: center;
        /*水平居中*/
        margin-left: auto;
        margin-right: auto;
        display: table;
        /*設置居中*/
/*        position: absolute;
        top: 50%;
        left: 50%;
        margin-top: -200px;
        margin-left:-150px;*/
    }
    /*#mycenter1{
        height: 300px;
        width: 400px;
        background-color: red;
        line-height: 300px;文字垂直居中,試用于一行文字
        text-align: center; 水平居中
        float: left;
        margin-left: 10px;
    }*/
    .inner{
        display: table-cell;
        vertical-align: middle;
        /*width: 300px;*/
        /*height: 100px;*/
        background-color: orange;
        text-align: center;
    }
    </style>
</head>
<body>
        <div id="mycenter">
            <div class="inner">
            <!-- 啊啊啊啊啊啊啊啊啊啊不sdr不不不不不不不不不難男男女女男男女女男男女女是事實上事實上是啊啊啊啊啊啊啊啊啊啊不不不不不不不不不不不難男男女女男男女女男男ttt女女是事實上事實上是啊啊啊啊啊啊啊啊啊啊不不不不不不不不不不不難男男女女男男女女男男女女是事實上事實上是 -->
<img src="https://www.baidu.com/img/bd_logo1.png" height="127">
        </div>
    </div>
    <!-- <div id="mycenter1">
啊啊啊啊啊啊啊啊啊啊不sdr不不不不不不不不不難男男女女男男女女男男女女是事實上事實上是啊啊啊啊啊啊啊啊啊啊不不不不不不不不不不不難男男女女男男女女男男ttt女女是事實上事實上是啊啊啊啊啊啊啊啊啊啊不不不不不不不不不不不難男男女女男男女女男男女女是事實上事實上是
</div> -->
</body>
</html>
- 效果圖

圖片居中.png

五、Html調色原理

  • HTML 的顏色表示可分兩種:
    • 以命名方式定義常用的顏色,如 RED。
      命名方式所包括的色中不多也不是很方便,所以較少采用。
    • 以 RGB 值表示,如 #FF0000 表示 red。
      眾所周知顏色是由“red”、“green”、“blue” 三原色組合而成的,在 HTML 中對于彩度的定義是采用十六進制的,對于三原色 HTML 分別給予兩個十六進位去定義,也就是每個原色有 256 種彩度,故此三原色可混合成一千六百多萬個顏色。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,182評論 6 543
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,489評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,290評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,776評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,510評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,866評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,860評論 3 447
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,036評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,585評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,331評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,536評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,058評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,754評論 3 349
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,154評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,469評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,273評論 3 399
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,505評論 2 379

推薦閱讀更多精彩內容

  • 各種純css圖標 CSS3可以實現很多漂亮的圖形,我收集了32種圖形,在下面列出。直接用CSS3畫出這些圖形,要比...
    劍殘閱讀 9,634評論 0 8
  • 不會用代碼框,所以看著有些亂套,,,,html部分 <!DOCTYPE html> 迅雷看看 ...
    這就是個帥氣的名字閱讀 1,555評論 0 0
  • 1. tab列表折疊效果 html: 能源系統事業部 崗位名稱: 工作地點 崗位名...
    lilyping閱讀 1,883評論 0 1
  • 1、垂直對齊 如果你用CSS,則你會有困惑:我該怎么垂直對齊容器中的元素?現在,利用CSS3的Transform,...
    kiddings閱讀 3,193評論 0 11
  • 又到一年高考季,外面下著雨,讓我不僅想起了我的高考。高考那天天也是下著雨,那時每年的高考幾乎都下雨,聽老人們說,這...
    溫馨的王子閱讀 263評論 0 0