前端css

来源:https://www.cnblogs.com/dengyanchuan/archive/2019/04/02/10642795.html
-Advertisement-
Play Games

CSS介紹 CSS(Cascading Style Sheet,層疊樣式表)定義如何顯示HTML元素。 當瀏覽器讀到一個樣式表,它就會按照這個樣式表來對文檔進行格式化(渲染)。 CSS語法 CSS實例 每個CSS樣式由兩個組成部分:選擇器和聲明。聲明又包括屬性和屬性值。每個聲明之後用分號結束。 CS ...


CSS介紹

CSS(Cascading Style Sheet,層疊樣式表)定義如何顯示HTML元素。

當瀏覽器讀到一個樣式表,它就會按照這個樣式表來對文檔進行格式化(渲染)。

CSS語法

CSS實例

每個CSS樣式由兩個組成部分:選擇器和聲明。聲明又包括屬性和屬性值。每個聲明之後用分號結束。

CSS註釋

/*這是註釋*/

註釋是代碼之母。

CSS的幾種引入方式

行內樣式

行內式是在標記的style屬性中設定CSS樣式。不推薦大規模使用。

<p style="color: red">Hello world.</p>

內部樣式

嵌入式是將CSS樣式集中寫在網頁的<head></head>標簽對的<style></style>標簽對中。格式如下:

複製代碼 複製代碼
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        p{
            background-color: #2b99ff;
        }
    </style>
</head>
複製代碼 複製代碼

外部樣式

外部樣式就是將css寫在一個單獨的文件中,然後在頁面進行引入即可。推薦使用此方式。

<link href="mystyle.css" rel="stylesheet" type="text/css"/>

CSS選擇器

基本選擇器

元素選擇器

p {color: "red";}

ID選擇器

#i1 {
  background-color: red;
}

類選擇器

複製代碼 複製代碼
.c1 {
  font-size: 14px;
}
p.c1 {
color: red;
}
複製代碼 複製代碼

註意:

樣式類名不要用數字開頭(有的瀏覽器不認)。

標簽中的class屬性如果有多個,要用空格分隔。

通用選擇器

* {
  color: white;
}

組合選擇器

後代選擇器

/*li內部的a標簽設置字體顏色*/
li a {
  color: green;
}

兒子選擇器

/*選擇所有父級是 <div> 元素的 <p> 元素*/
div>p {
  font-family: "Arial Black", arial-black, cursive;
}

毗鄰選擇器

/*選擇所有緊接著<div>元素之後的<p>元素*/
div+p {
  margin: 5px;
}

弟弟選擇器

/*i1後面所有的兄弟p標簽*/
#i1~p {
  border: 2px solid royalblue;
}

屬性選擇器

複製代碼 複製代碼
/*用於選取帶有指定屬性的元素。*/
p[title] {
  color: red;
}
/*用於選取帶有指定屬性和值的元素。*/
p[title="213"] {
  color: green;
}
複製代碼 複製代碼
/*找到所有title屬性以hello開頭的元素*/
[title^="hello"] {
  color: red;
}

/*找到所有title屬性以hello結尾的元素*/
[title$="hello"] {
  color: yellow;
}

/*找到所有title屬性中包含(字元串包含)hello的元素*/
[title*="hello"] {
  color: red;
}

/*找到所有title屬性(有多個值或值以空格分割)中有一個值為hello的元素:*/
[title~="hello"] {
  color: green;
}
不怎麼常用的屬性選擇器

分組和嵌套

分組

多個元素的樣式相同的時候,我們沒有必要重覆地為每個元素都設置樣式,我們可以通過在多個選擇器之間使用逗號分隔的分組選擇器來統一設置元素樣式。 

例如:
div, p {
  color: red;
}

上面的代碼為div標簽和p標簽統一設置字體為紅色。

通常,我們會分兩行來寫,更清晰:
div,
p {
  color: red;
}

嵌套

種選擇器可以混合起來使用,比如:.c1類內部所有p標簽設置字體顏色為紅色。

.c1 p {
  color: red;
}

偽類選擇器

複製代碼 複製代碼
/* 未訪問的鏈接 */
a:link {
  color: #FF0000
}

/* 已訪問的鏈接 */
a:visited {
  color: #00FF00
} 

/* 滑鼠移動到鏈接上 */
a:hover {
  color: #FF00FF
} 

/* 選定的鏈接 */ 
a:active {
  color: #0000FF
}

/*input輸入框獲取焦點時樣式*/
input:focus {
  outline: none;
  background-color: #eee;
}
複製代碼 複製代碼

偽元素選擇器

first-letter

常用的給首字母設置特殊樣式:

p:first-letter {
  font-size: 48px;
  color: red;
}

before

/*在每個<p>元素之前插入內容*/
p:before {
  content:"*";
  color:red;
}

after

/*在每個<p>元素之後插入內容*/
p:after {
  content:"[?]";
  color:blue;
} 

before和after多用於清除浮動。

選擇器的優先順序

CSS繼承

繼承是CSS的一個主要特征,它是依賴於祖先-後代的關係的。繼承是一種機制,它允許樣式不僅可以應用於某個特定的元素,還可以應用於它的後代。例如一個body定義了的字體顏色值也會應用到段落的文本中。

body {
  color: red;
}

此時頁面上所有標簽都會繼承body的字體顏色。然而CSS繼承性的權重是非常低的,是比普通元素的權重還要低的0。

我們只要給對應的標簽設置字體顏色就可覆蓋掉它繼承的樣式。

p {
  color: green;
}

此外,繼承是CSS重要的一部分,我們甚至不用去考慮它為什麼能夠這樣,但CSS繼承也是有限制的。有一些屬性不能被繼承,如:border, margin, padding, background等。

選擇器的優先順序

我們上面學了很多的選擇器,也就是說在一個HTML頁面中有很多種方式找到一個元素並且為其設置樣式,那瀏覽器根據什麼來決定應該應用哪個樣式呢?

其實是按照不同選擇器的權重來決定的,具體的選擇器權重計算方式如下圖:

除此之外還可以通過添加 !important方式來強制讓樣式生效,但並不推薦使用。因為如果過多的使用!important會使樣式文件混亂不易維護。

萬不得已可以使用!important

CSS屬性相關

寬和高

width屬性可以為元素設置寬度。

height屬性可以為元素設置高度。

塊級標簽才能設置寬度,內聯標簽的寬度由內容來決定。

字體屬性

文字字體

font-family可以把多個字體名稱作為一個“回退”系統來保存。如果瀏覽器不支持第一個字體,則會嘗試下一個。瀏覽器會使用它可識別的第一個值。   簡單實例:
body {
  font-family: "Microsoft Yahei", "微軟雅黑", "Arial", sans-serif
}

字體大小

p {
  font-size: 14px;
}

如果設置成inherit表示繼承父元素的字體大小值。

字重(粗細) 

font-weight用來設置字體的字重(粗細)。

描述
normal 預設值,標準粗細
bold 粗體
bolder 更粗
lighter 更細
100~900 設置具體粗細,400等同於normal,而700等同於bold
inherit 繼承父元素字體的粗細值

文本顏色

顏色屬性被用來設置文字的顏色。

顏色是通過CSS最經常的指定:

  • 十六進位值 - 如: FF0000
  • 一個RGB值 - 如: RGB(255,0,0)
  • 顏色的名稱 - 如:  red

還有rgba(255,0,0,0.3),第四個值為alpha, 指定了色彩的透明度/不透明度,它的範圍為0.0到1.0之間。

文字屬性

文字對齊

text-align 屬性規定元素中的文本的水平對齊方式。

描述
left 左邊對齊 預設值
right 右對齊
center 居中對齊
justify 兩端對齊

文字裝飾

text-decoration 屬性用來給文字添加特殊效果。

描述
none 預設。定義標準的文本。
underline 定義文本下的一條線。
overline 定義文本上的一條線。
line-through 定義穿過文本下的一條線。
inherit 繼承父元素的text-decoration屬性的值。

常用的為去掉a標簽預設的自劃線:

a {
  text-decoration: none;
}

首行縮進

將段落的第一行縮進 32像素:

p {
  text-indent: 32px;
}

背景屬性

複製代碼 複製代碼
/*背景顏色*/
background-color: red; /*背景圖片*/ background-image: url('1.jpg');
/*
背景重覆
repeat(預設):背景圖片平鋪排滿整個網頁
repeat-x:背景圖片只在水平方向上平鋪
repeat-y:背景圖片只在垂直方向上平鋪
no-repeat:背景圖片不平鋪
*/ background-repeat: no-repeat; /*背景位置*/ background-position: left top;
/*background-position: 200px 200px;*/
複製代碼 複製代碼

支持簡寫:

background:#336699 url('1.png') no-repeat left top;

使用背景圖片的一個常見案例就是很多網站會把很多小圖標放在一張圖片上,然後根據位置去顯示圖片。減少頻繁的圖片請求。

 參考鏈接點我

一個有趣的例子:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>滾動背景圖示例</title>
    <style>
        * {
            margin: 0;
        }
        .box {
            width: 100%;
            height: 500px;
            background: url("http://gss0.baidu.com/94o3dSag_xI4khGko9WTAnF6hhy/zhidao/wh%3D450%2C600/sign=e9952f4a6f09c93d07a706f3aa0dd4ea/4a36acaf2edda3cc5c5bdd6409e93901213f9232.jpg")  center center;
            background-attachment: fixed;
        }
        .d1 {
            height: 500px;
            background-color: tomato;
        }
        .d2 {
            height: 500px;
            background-color: steelblue;
        }
        .d3 {
            height: 500px;
            background-color: mediumorchid;
        }
    </style>
</head>
<body>
    <div class="d1"></div>
    <div class="box"></div>
    <div class="d2"></div>
    <div class="d3"></div>
</body>
</html>
圖片不動

邊框

邊框屬性 

  • border-width
  • border-style
  • border-color
#i1 {
  border-width: 2px;
  border-style: solid;
  border-color: red;
}

通常使用簡寫方式:

#i1 {
  border: 2px solid red;
}

邊框樣式

描述
none 無邊框。
dotted 點狀虛線邊框。
dashed 矩形虛線邊框。
solid 實線邊框。

 

除了可以統一設置邊框外還可以單獨為某一個邊框設置樣式,如下所示:

複製代碼 複製代碼
#i1 {
  border-top-style:dotted;
  border-top-color: red;
  border-right-style:solid;
  border-bottom-style:dotted;
  border-left-style:none;
}
複製代碼 複製代碼

border-radius

用這個屬性能實現圓角邊框的效果。

border-radius設置為長或高的一半即可得到一個圓形。

display屬性

用於控制HTML元素的顯示效果。

意義
display:"none" HTML文檔中元素存在,但是在瀏覽器中不顯示。一般用於配合JavaScript代碼使用。
display:"block" 認占滿整個頁面寬度,如果設置了指定寬度,則會用margin填充剩下的部分。
display:"inline" 按行內元素顯示,此時再設置元素的widthheightmargin-topmargin-bottomfloat屬性都不會有什麼影響。
display:"inline-block" 使元素同時具有行內元素和塊級元素的特點。

 

display:"none"與visibility:hidden的區別:

visibility:hidden: 可以隱藏某個元素,但隱藏的元素仍需占用與未隱藏之前一樣的空間。也就是說,該元素雖然被隱藏了,但仍然會影響佈局。

display:none: 可以隱藏某個元素,且隱藏的元素不會占用任何空間。也就是說,該元素不但被隱藏了,而且該元素原本占用的空間也會從頁面佈局中消失。

 CSS盒子模型

  • margin:            用於控制元素與元素之間的距離;margin的最基本用途就是控制元素周圍空間的間隔,從視覺角度上達到相互隔開的目的。
  • padding:           用於控制內容與邊框之間的距離;   
  • Border(邊框):     圍繞在內邊距和內容外的邊框。
  • Content(內容):   盒子的內容,顯示文本和圖像。

看圖吧:

margin外邊距

複製代碼 複製代碼
.margin-test {
  margin-top:5px;
  margin-right:10px;
  margin-bottom:15px;
  margin-left:20px;
}
複製代碼
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一、JavaScript介紹 1、JavaScript:輕量級的客戶端腳本語音 2、目前js已經不僅僅是客戶語音,基於NODE可以做伺服器端程式,所以Javascript是全棧編程語音 3、js及部分組成 ECMAScript (ES):js的核心語法 DOM:docment object mode ...
  • js控制html頁面顯示圖片方式,只需要引入“jquery-1.11.2.min.js” js: /* 引用 <script src="jquery-1.11.2.min.js" type="text/javascript"></script> <script src="showImage.js" ...
  • js實現把圖片用瀑布流顯示,只需要“jquery-1.11.2.min.js”。 js: //20180315 //瀑布流顯示圖片 var WaterfallImg = { option: { maxWidth: 850,//每一行固定的總的寬度 ifBeyond: 1,//載入到最後一張圖超出範圍 ...
  • 1.1 JavaScript事件 JavaScript事件使用示例: 1.2 jQuery事件 jQuery事件使用示例: 1.3 on()事件方法 定義和用法 on() 方法在被選元素及子元素上添加一個或多個事件處理程式。 自 jQuery 版本 1.7 起,on() 方法是 bind()、liv ...
  • 先看個熱鬧 突然一天在微信上打不開我的功能變數名稱了,被封了 然後我要瘋,我沒有這個svg啊,雖然系統中有圖片上傳的地方,但是也不會用到這個svg啊 想想,可能有人通過我的系統免費上傳了這個svg然後在其他地方用了這個免費的資源流量。 下載這個svg,文本編輯器打開源碼 打開https://ookwqc.c ...
  • 項目簡介 基於node express+mysql+vue-cli3和追書神器介面製作的移動端小說閱讀網站,**僅供參考學習!不用於任何商業用途!** 閑暇時間用vue練練手,就想寫個小說網站來看看,選擇了追書神器的介面。 因為偷懶,所以使用了mint—ui的一些小插件,以後慢慢替換。 項目地址:g ...
  • 邊距重疊解決方案(BFC) 首先要明確BFC是什麼意思,其全英文拼寫為 Block Formatting Context 直譯為“塊級格式化上下文” 兩個或多個塊級盒子的垂直相鄰邊界會重合。結果的邊界寬度是相鄰邊界寬度中最大的值。如果出現負邊界,則在最大的正邊界中減去絕對值最大的負邊界。如果沒有正邊 ...
  • 盒模型的組成大家肯定都懂,由里向外content,padding,border,margin. 盒模型是有兩種標準的,一個是標準模型,一個是IE模型。 從上面兩圖不難看出在標準模型中,盒模型的寬高只是內容(content)的寬高, 而在IE模型中盒模型的寬高是內容(content)+填充(paddi ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...