前端學習之路之CSS (四)

来源:https://www.cnblogs.com/Infi-chu/archive/2018/10/09/9759357.html
-Advertisement-
Play Games

Infi-chu: http://www.cnblogs.com/Infi-chu/ CSS盒子模型 概念:CSS盒模型本質上是一個盒子,封裝周圍的HTML元素,它包括:邊距,邊框,填充,和實際內容。盒模型允許我們在其它元素和周圍元素邊框之間的空間放置元素。 如下所示: 不同部分的說明: Margi ...


 Infi-chu:

http://www.cnblogs.com/Infi-chu/

 

CSS盒子模型
    概念:CSS盒模型本質上是一個盒子,封裝周圍的HTML元素,它包括:邊距,邊框,填充,和實際內容。盒模型允許我們在其它元素和周圍元素邊框之間的空間放置元素。
    如下所示:
    
    不同部分的說明:
        Margin(外邊距) - 清除邊框外的區域,外邊距是透明的。
        Border(邊框) - 圍繞在內邊距和內容外的邊框。
        Padding(內邊距) - 清除內容周圍的區域,內邊距是透明的。
        Content(內容) - 盒子的內容,顯示文本和圖像。

    元素的寬度和高度:
        例子:300px (寬)+ 50px (左 + 右填充)+ 50px (左 + 右邊框)+ 50px (左 + 右邊距)= 450px
        總結:
            最終元素的總寬度計算公式是這樣的:總元素的寬度=寬度+左填充+右填充+左邊框+右邊框+左邊距+右邊距
            元素的總高度最終計算公式是這樣的:總元素的高度=高度+頂部填充+底部填充+上邊框+下邊框+上邊距+下邊距
    
CSS邊框:
    邊框樣式:
        border-style屬性用來定義邊框的樣式。
        常用的值:
            none: 預設無邊框
            dotted: 定義一個點線邊框
            dashed: 定義一個虛線邊框
            solid: 定義實線邊框
            double: 定義兩個邊框。 兩個邊框的寬度和 border-width 的值相同
            groove: 定義3D溝槽邊框。效果取決於邊框的顏色值
            ridge: 定義3D脊邊框。效果取決於邊框的顏色值
            inset:定義一個3D的嵌入邊框。效果取決於邊框的顏色值
            outset: 定義一個3D突出邊框。 效果取決於邊框的顏色值
            
    邊框寬度:
        通過 border-width 屬性為邊框指定寬度。
        為邊框指定寬度有兩種方法:
            可以指定長度值,比如 2px 或 0.1em(單位為 px, pt, cm, em 等);
            或者使用 3 個關鍵字之一,它們分別是 thick 、medium(預設值) 和 thin。
        註:CSS 沒有定義 3 個關鍵字的具體寬度,所以一個用戶可能把 thick 、medium 和 thin 分別設置為等於 5px、3px 和 2px,而另一個用戶則分別設置為 3px、2px 和 1px。    
        

        p.one
        {
            border-style:solid;
            border-width:5px;
        }
        p.two
        {
            border-style:solid;
            border-width:medium;
        }

 


    
    邊框顏色:
        border-color屬性用於設置邊框的顏色。可以設置的顏色:
            name - 指定顏色的名稱,如 "red"
            RGB - 指定 RGB 值, 如 "rgb(255,0,0)"
            Hex - 指定16進位值, 如 "#ff0000"
        註: border-color單獨使用是不起作用的,必須得先使用border-style來設置邊框樣式。
            

        p.one
        {
            border-style:solid;
            border-color:red;
        }
        p.two
        {
            border-style:solid;
            border-color:#98bf21;
        }

 


        
    單獨設置各個邊:
    border-style屬性可以有1-4個值:
        border-style:dotted solid double dashed;
            上邊框是 dotted
            右邊框是 solid
            底邊框是 double
            左邊框是 dashed

        border-style:dotted solid double;
            上邊框是 dotted
            左、右邊框是 solid
            底邊框是 double

        border-style:dotted solid;
            上、底邊框是 dotted
            右、左邊框是 solid

        border-style:dotted;
            四面邊框是 dotted
    
    常用邊框屬性:
        border     簡寫屬性,用於把針對四個邊的屬性設置在一個聲明。
        border-style     用於設置元素所有邊框的樣式,或者單獨地為各邊設置邊框樣式。
        border-width     簡寫屬性,用於為元素的所有邊框設置寬度,或者單獨地為各邊邊框設置寬度。
        border-color     簡寫屬性,設置元素的所有邊框中可見部分的顏色,或為 4 個邊分別設置顏色。
        border-bottom     簡寫屬性,用於把下邊框的所有屬性設置到一個聲明中。
        border-bottom-color     設置元素的下邊框的顏色。
        border-bottom-style     設置元素的下邊框的樣式。
        border-bottom-width     設置元素的下邊框的寬度。
        border-left     簡寫屬性,用於把左邊框的所有屬性設置到一個聲明中。
        border-left-color     設置元素的左邊框的顏色。
        border-left-style     設置元素的左邊框的樣式。
        border-left-width     設置元素的左邊框的寬度。
        border-right     簡寫屬性,用於把右邊框的所有屬性設置到一個聲明中。
        border-right-color     設置元素的右邊框的顏色。
        border-right-style     設置元素的右邊框的樣式。
        border-right-width     設置元素的右邊框的寬度。
        border-top     簡寫屬性,用於把上邊框的所有屬性設置到一個聲明中。
        border-top-color     設置元素的上邊框的顏色。
        border-top-style     設置元素的上邊框的樣式。
        border-top-width     設置元素的上邊框的寬度。
        
CSS輪廓:
    CSS輪廓:
        輪廓(outline)是繪製於元素周圍的一條線,位於邊框邊緣的外圍,可起到突出元素的作用;CSS outline 屬性規定元素輪廓的樣式、顏色和寬度。
        如圖所示:
    
    所有屬性:
        屬性                             說明                                             值                                         CSS
        outline             在一個聲明中設置所有的輪廓屬性     outline-color、outline-style、outline-width、inherit                 2
        outline-color             設置輪廓的顏色                 color-name、hex-number、rgb-number、invert、inherit                     2
        outline-style             設置輪廓的樣式         none、dotted、dashed、solid、double、groove、ridge、inset、outset、inherit     2
        outline-width             設置輪廓的寬度                 thin、medium、thick、length、inherit                                 2
        
CSS外邊距:
    margin:
        margin 清除周圍的(外邊框)元素區域。margin 沒有背景顏色,是完全透明的;margin 可以單獨改變元素的上,下,左,右邊距,也可以一次改變所有的屬性。
        如圖所示:
    
        可以輸入的值:
            值             說明
            auto     設置瀏覽器邊距,這樣做的結果會依賴於瀏覽器
            length     定義一個固定的margin(使用像素,pt,em等)
            %         定義一個使用百分比的邊距
    
    單邊 外邊距屬性:
        margin-top:100px;
        margin-bottom:100px;
        margin-right:50px;
        margin-left:50px;
    
    簡寫:
        margin:25px 50px 75px 100px;
            上邊距為25px
            右邊距為50px
            下邊距為75px
            左邊距為100px

        margin:25px 50px 75px;
            上邊距為25px
            左右邊距為50px
            下邊距為75px

        margin:25px 50px;
            上下邊距為25px
            左右邊距為50px

        margin:25px;
            所有的4個邊距都是25px
            
CSS填充:
    Padding:
        當元素的 padding(填充)內邊距被清除時,所釋放的區域將會受到元素背景顏色的填充;單獨使用 padding 屬性可以改變上下左右的填充。
        如圖所示:
    
        可以輸入的值:
            值             說明
            length         定義一個固定的填充(像素, pt, em,等)
            %             使用百分比值定義一個填充
    
    填充 單邊內邊距:
        padding-top:25px;
        padding-bottom:25px;
        padding-right:50px;
        padding-left:50px;
        
    簡寫:
        padding:25px 50px 75px 100px;
            上填充為25px
            右填充為50px
            下填充為75px
            左填充為100px

        padding:25px 50px 75px;
            上填充為25px
            左右填充為50px
            下填充為75px

        padding:25px 50px;
            上下填充為25px
            左右填充為50px

        padding:25px;
            所有的填充都是25px

CSS分組和嵌套:
    分組選擇器:
        在樣式表中有很多具有相同樣式的元素;為了儘量減少代碼,你可以使用分組選擇器;每個選擇器用逗號分隔。

        
        h1,h2,p
        {
            color:green;
        }

 


    
    嵌套選擇器:
        它可能適用於選擇器內部的選擇器的樣式。

        
        /*
        p{ }: 為所有 p 元素指定一個樣式。
        .marked{ }: 為所有 class="marked" 的元素指定一個樣式。
        .marked p{ }: 為所有 class="marked" 元素內的 p 元素指定一個樣式。
        p.marked{ }: 為所有 class="marked" 的 p 元素指定一個樣式。
        */
        p
        {
            color:blue;
            text-align:center;
        }
        .marked
        {
            background-color:red;
        }
        .marked p
        {
            color:white;
        }
        p.marked{
            text-decoration:underline;
        }

 



CSS尺寸:
    常用屬性:
        屬性                 描述
        height             設置元素的高度。
        line-height     設置行高。
        max-height         設置元素的最大高度。
        max-width         設置元素的最大寬度。
        min-height         設置元素的最小高度。
        min-width         設置元素的最小寬度。
        width             設置元素的寬度。

CSS Display(顯示) 與 Visibility(可見性):
    隱藏元素 - display:none或visibility:hidden:
        隱藏一個元素可以通過把display屬性設置為"none",或把visibility屬性設置為"hidden"。但是請註意,這兩種方法會產生不同的結果;visibility:hidden可以隱藏某個元素,但隱藏的元素仍需占用與未隱藏之前一樣的空間。也就是說,該元素雖然被隱藏了,但仍然會影響佈局。
        display:none可以隱藏某個元素,且隱藏的元素不會占用任何空間。也就是說,該元素不但被隱藏了,而且該元素原本占用的空間也會從頁面佈局中消失。
        
        h1.hidden {visibility:hidden;}
        h1.hidden {display:none;}
        
    CSS Display - 塊和內聯元素:
        塊元素是一個元素,占用了全部寬度,在前後都是換行符。
        塊元素的例子:
            <h1>
            <p>
            <div>
        內聯元素只需要必要的寬度,不強制換行。
        內聯元素的例子:
            <span>
            <a>

    如何改變一個元素顯示:
        可以更改內聯元素和塊元素:
            把列表項顯示為內聯元素:
            li {display:inline;}
            
            把span元素作為塊元素:
            span {display:block;}
            
CSS定位:
    五大屬性:static、relative、fixed、absolute、sticky
    
    static定位:
        HTML元素的預設值,即沒有定位,元素出現在正常的流中;靜態定位的元素不會受到 top, bottom, left, right影響。    

        div.static {
            position: static;
            border: 3px solid #73AD21;
        }

 


        
    fixed定位:
        元素的位置相對於瀏覽器視窗是固定位置;即使視窗是滾動的它也不會移動    
      

 p.pos_fixed
        {
            position:fixed;
            top:30px;
            right:5px;
        }

 


        註:Fixed 定位在 IE7 和 IE8 下需要描述 !DOCTYPE 才能支持;Fixed定位使元素的位置與文檔流無關,因此不占據空間;Fixed定位的元素和其他元素重疊。
        
    relative 定位:
        相對定位元素的定位是相對其正常位置。

        h2.pos_left
        {
            position:relative;
            left:-20px;
        }
        h2.pos_right
        {
            position:relative;
            left:20px;
        }

 



    absolute 定位:
        絕對定位的元素的位置相對於最近的已定位父元素,如果元素沒有已定位的父元素,那麼它的位置相對於<html>:

h2{
            position:absolute;
            left:100px;
            top:150px;
        }

 


    註:absolute 定位使元素的位置與文檔流無關,因此不占據空間;absolute 定位的元素和其他元素重疊。
    
    sticky 定位
        position: sticky; 基於用戶的滾動位置來定位;粘性定位的元素是依賴於用戶的滾動,在 position:relative 與 position:fixed 定位之間切換;它的行為就像 position:relative; 而當頁面滾動超出目標區域時,它的表現就像 position:fixed;它會固定在目標位置;元素定位表現為在跨越特定閾值前為相對定位,之後為固定定位;這個特定閾值指的是 top, right, bottom 或 left 之一,換言之,指定 top, right, bottom 或 left 四個閾值其中之一,才可使粘性定位生效。否則其行為與相對定位相同。
       

div.sticky {
            position: -webkit-sticky; /* Safari */
            position: sticky;
            top: 0;
            background-color: green;
            border: 2px solid #4CAF50;
        }

 


    
    重疊的元素:
        元素的定位與文檔流無關,所以它們可以覆蓋頁面上的其它元素;z-index屬性指定了一個元素的堆疊順序(哪個元素應該放在前面,或後面);一個元素可以有正數或負數的堆疊順序
    
CSS Overflow:
    CSS overflow 屬性可以控制內容溢出元素框時在對應的元素區間內添加滾動條。
    
    屬性:
            值             描述
        visible     預設值。內容不會被修剪,會呈現在元素框之外。
        hidden         內容會被修剪,並且其餘內容是不可見的。
        scroll         內容會被修剪,但是瀏覽器會顯示滾動條以便查看其餘的內容。
        auto         如果內容被修剪,則瀏覽器會顯示滾動條以便查看其餘的內容。
        inherit     規定應該從父元素繼承 overflow 屬性的值。
        
CSS浮動:
    什麼是浮動:
        CSS 的 Float(浮動),會使元素向左或向右移動,其周圍的元素也會重新排列。Float(浮動),往往是用於圖像,但它在佈局時一樣非常有用。

    .eg
    {
        float:left;
        width:110px;
        height:90px;
        margin:5px;
    }

 






您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 這裡附一篇自己的簡短理解 get相對於post更不安全,雖然都可以加密 get的參數會顯示在瀏覽器地址欄中,而post的參數不會顯示在瀏覽器地址欄中; 使用post提交的頁面在點擊【刷新】按鈕的時候瀏覽器一般會提示“是否重新提交”,而get則不會; 用get的頁面可以被搜索引擎抓取,而用post的則 ...
  • .not() 遍歷方法 從匹配元素集合中移除元素 :not() 選擇器 選取除了指定元素以外的所有元素。 獲取ul中除 id="unwanted" 的其他所有 li ...
  • 首先我們在pages文件夾下創建components目錄用於存放自定義組件。如圖所示,以我創建的dialog組件為例,自定義組件的格式與頁面一樣,分為4個文件。 圖1 圖2 如上圖2所示,假如index頁面有一個按鈕觸發點擊事件後彈出dialog,並且當點擊某個部門時,將dialog關閉,並將部門名 ...
  • Introduce(介紹) 用戶簽到的H5例子(css+jquery,無圖片),由於網上找的的用戶簽到例子都不好,要不就是好多圖片組成的,要不就大量冗餘代碼,所以特意做了個簽到界面(移動端)。 User sign sample page for mobile using h5 which only ...
  • 先安裝 axios axios的詳細介紹以及用法 就不多說了請 移步 github ➡️ https://github.com/axios/axios 下麵是簡單的封裝一個 http.js, 在此說明 checkStatus 這個方法呢 是不一定需要的 ,根據個人的項目需求吧,也可以直接返回resp ...
  • JS中的typeof方法可以查看數據的類型,如下: 1 console.log(typeof 2); // number 2 console.log(typeof "2"); // string 3 console.log(typeof true); // boolean 4 console.log ...
  • 關於使用css製作三角符號,網上有很多的例子了,在這裡只是為了詳細的向各位解釋一下三角符號的原理 下圖,是一個長寬為100px,邊框寬度為100px的一個元素,由此可見,在css中上下左右的邊框相交處並不是一個直線,所以,可以根據此屬性進行編寫三角符號 那麼如何使用css的該屬性來實現三角符號的效果 ...
  • push() 在數組末尾添加一個元素 pop() 在數組末尾刪除一個元素 shift() 刪除數組第一個元素 unshift 在數組開頭添加一個元素 concat() 方法用於連接兩個或多個數組 splice() 刪除、插入、替換 1、刪除功能,第一個參數為第一項位置,第二個參數為要刪除幾個。arr ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...