整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          一篇文章帶你了解CSS 文本樣式

          家好,我是IT共享者,人稱皮皮。這篇文章我們來講講CSS的文本樣式。

          一、文本顏色Color

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

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

          • 十六進制值 - 如"#FF0000"。
          • 一個RGB值 - "RGB(255,0,0)"。
          • 顏色的名稱 - 如"紅"。

          一個網頁的文本顏色是指在主體內的選擇:

          <html>
              <head>
                  <meta charset="utf-8">
                  <meta name="viewport" content="width=640, user-scalable=no">
                  <title>項目</title>
                  <style>
                      body {
                          color: blue;
                      }
          
          
                      h1 {
                          color: #00ff00;
                      }
          
          
                      h2 {
                          color: rgb(255, 0, 0);
                      }
          </style>
              </head>
          
          
              <body>
                  <h2>hello world</h2>
                  <h1>welcome to CaoZhou</h1>
              </body>
          
          
          </html>

          注:對于W3C標準的CSS:如果你定義了顏色屬性,你還必須定義背景色屬性。


          二、屬性

          1. text-align 文本的對齊方式

          文本排列屬性是用來設置文本的水平對齊方式。

          文本可居中或對齊到左或右,兩端對齊。

          當text-align設置為"justify",每一行被展開為寬度相等,左,右外邊距是對齊(如雜志和報紙)。

          <!doctype html>
          <html lang="en">
          
          
              <head>
                  <meta charset="UTF-8">
                  <title>Document</title>
                  <style>
                      h1 {
                          text-align: center;
                      }
          
          
                      p.date {
                          text-align: right;
                      }
          
          
                      p.main {
                          text-align: justify;
                      }
          </style>
              </head>
          
          
              <body>
          
          
                  <p class="date">2015 年 3 月 14 號</p>
                  <p class="main"> 從前有個書生,和未婚妻約好在某年某月某日結婚。到那一天,未婚妻卻嫁給了別人。書生受此打擊, 一病不起。  這時,路過一游方僧人,從懷里摸出一面鏡子叫書生看。書生看到茫茫大海,一名遇害的女子一絲不掛地躺在海灘上。路過一人, 看一眼,搖搖頭,走了。又路過一人,將衣服脫下,給女尸蓋上,走了。再路過一人,過去,挖個坑,小心翼翼把尸體掩埋了。  僧人解釋道, 那具海灘上的女尸,就是你未婚妻的前世。你是第二個路過的人,曾給過他一件衣服。她今生和你相戀,只為還你一個情。但是她最終要報答一生一世的人,是最后那個把她掩埋的人,那人就是他現在的丈夫。書生大悟,病愈。
          
          
                  </p>
                  <p><b>注意:</b> 重置瀏覽器窗口大小查看 "justify" 是如何工作的。</p>
              </body>
          
          
          </html>

          2. text-decoration文本修飾

          text-decoration 屬性用來設置或刪除文本的裝飾。

          從設計的角度看 text-decoration屬性主要是用來刪除鏈接的下劃線:

          <!doctype html>
          <html lang="en">
          
          
              <head>
                  <meta charset="UTF-8">
                  <title>Document</title>
                  <style>
                      .none {}
          
          
                      .del {
                          text-decoration: none;
                      }
          </style>
              </head>
          
          
              <body>
                  <p>原來的樣子</p>
                  <a href="#" class="none">wwwwwwwwwwwwwwwwww</a>
                  <p>去掉下劃線</p>
                  <a href="#" class="del">wwwwwwwwwwwwwwwwwwwww</a>
              </body>
          
          
          </html>

          也可以這樣裝飾文字:

          <html>
              <head>
                  <meta charset="utf-8">
                  <meta name="viewport" content="width=640, user-scalable=no">
                  <title>項目</title>
                  <style>
                      h1 {
                          text-decoration: overline;
                      }
          
          
                      h2 {
                          text-decoration: line-through;
                      }
          
          
                      h3 {
                          text-decoration: underline;
                      }
          </style>
              </head>
          
          
              <body>
                  <h1>This is heading 1</h1>
                  <h2>This is heading 2</h2>
                  <h3>This is heading 3</h3>
              </body>
          
          
          </html>

          注:不建議強調指出不是鏈接的文本,因為這常常混淆用戶。


          3. text-transform文本轉換

          text-transform文本轉換屬性是用來指定在一個文本中的大寫和小寫字母。

          • uppercase:轉換為全部大寫。
          • lowercase:轉換為全部小寫。
          • capitalize :每個單詞的首字母大寫。
          <!DOCTYPE html>
          <html>
          
          
              <head>
                  <meta charset="utf-8">
                  <meta name="viewport" content="width=640, user-scalable=no">
                  <title>項目</title>
                  <style>
                      p.uppercase {
                          text-transform: uppercase;
                      }
          
          
                      p.lowercase {
                          text-transform: lowercase;
                      }
          
          
                      p.capitalize {
                          text-transform: capitalize;
                      }
          </style>
              </head>
          
          
              <body>
                  <p class="uppercase">This is some text.</p>
                  <p class="lowercase">This is some text.</p>
                  <p class="capitalize">This is some text.</p>
              </body>
          
          
          </html>

          4. text-indent文本縮進

          text-indent文本縮進屬性是用來指定文本的第一行的縮進。

          p {text-indent:50px;}

          5. letter-spacing 設置字符間距

          增加或減少字符之間的空間。

          <style>
               h1 {
                 letter-spacing:2px;
          }
                h2 {
                  letter-spacing:-3px;
          }
          </style>

          6. line-height設置行高

          指定在一個段落中行之間的空間。

          <html>
              <head>
                  <meta charset="utf-8">
                  <meta name="viewport" content="width=640, user-scalable=no">
                  <title>項目</title>
                  <style>
                      p.small {
                          line-height: 70%;
                      }
          
          
                      p.big {
                          line-height: 200%;
                      }
          </style>
              </head>
          
          
              <body>
                  <p>
                      This is a paragraph with a standard line-height.<br> This is a paragraph with a standard line-height.<br> The default line height in most browsers is about 110% to 120%.<br>
                  </p>
          
          
                  <p class="small">
                      This is a paragraph with a smaller line-height.<br> This is a paragraph with a smaller line-height.<br> This is a paragraph with a smaller line-height.<br> This is a paragraph with a smaller line-height.<br>
                  </p>
          
          
                  <p class="big">
                      This is a paragraph with a bigger line-height.<br> This is a paragraph with a bigger line-height.<br> This is a paragraph with a bigger line-height.<br> This is a paragraph with a bigger line-height.<br>
                  </p>
          
          
              </body>
          
          
          </html>

          7. word-spacing 設置字間距

          增加一個段落中的單詞之間的空白空間。

          <html>
              <head>
                  <meta charset="utf-8">
                  <meta name="viewport" content="width=640, user-scalable=no">
                  <title>項目</title>
                  <style type="text/css">
                      p {
                          word-spacing: 30px;
                      }
          </style>
              </head>
          
          
              <body>
          
          
                  <p>
                      This is some text. This is some text.
                  </p>
          
          
              </body>
          
          
          </html>

          8. vertical-align 設置元垂直居中

          設置文本的垂直對齊圖像。

          <html>
              <head>
                  <meta charset="utf-8">
                  <meta name="viewport" content="width=640, user-scalable=no">
                  <title>項目</title>
                  <style>
                      img{
                          width: 200px;
                          height: 100px;
                      }
                      img.top {
                          vertical-align: text-top;
          
          
                      }
          
          
                      img.bottom {
                          vertical-align: text-bottom;
          
          
                      }
          </style>
              </head>
          
          
              <body>
                  <p>An <img src="img/logo.png"  /> image with a default alignment.</p>
                  <p>An <img class="top" src="img/logo.png" /> image with a text-top alignment.</p>
                  <p>An <img class="bottom" src="img/logo.png" /> image with a text-bottom alignment.</p>
              </body>
          
          
          </html>

          9. text-shadow 設置文本陰影

          設置文本陰影。

          <html>
              <head>
                  <meta charset="utf-8">
                  <meta name="viewport" content="width=640, user-scalable=no">
                  <title>項目</title>
                  <style>
                   h1{
                      text-shadow: 2px 2px #FF0000;
               }
          </style>
              </head>
          
          
              <body>
              <h1>Text-shadow effect</h1>
              </body>
          
          
          </html>

          三、總結

          本文主要介紹了CSS文本樣式實際應用中應該如何去操作,通過講解文本中對應的屬性去改變文本的表現形式。使用豐富的效果圖的展示,能夠更直觀的看到運行的效果,能夠更好的理解。使用Html語言,代碼結構更佳的清晰,能夠幫助你更好的學習。

          家好,我是 Echa。

          當開始一個新的前端項目時,首要任務就是重置 CSS 中的一些默認樣式。下面就來看看在現代 CSS 中如何進行樣式重置。本文將深入研究每條規則,以了解它的作用和使用它的原因!

          下面是自定義的 CSS 重置代碼:

          /*
            1. 使用更直觀的 box-sizing 模型
          */
          *, *::before, *::after {
            box-sizing: border-box;
          }
          /*
            2. 移除默認 margin
          */
          * {
            margin: 0;
          }
          /*
            3. 在應用中允許基于百分比的高度
          */
          html, body {
            height: 100%;
          }
          /*
            排版調整
            4. 添加無障礙行高
            5. 改進文本渲染
          */
          body {
            line-height: 1.5;
            -webkit-font-smoothing: antialiased;
          }
          /*
            6. 改進媒體默認設置
          */
          img, picture, video, canvas, svg {
            display: block;
            max-width: 100%;
          }
          /*
            7. 刪除內置表單排版樣式
          */
          input, button, textarea, select {
            font: inherit;
          }
          /*
            8. 避免文字溢出
          */
          p, h1, h2, h3, h4, h5, h6 {
            overflow-wrap: break-word;
          }
          /*
            9. 創建根層疊上下文
          */
          #root, #__next {
            isolation: isolate;
          }
          

          這里的代碼不多,但是這個小樣式表中包含了很多內容。下面將逐條介紹!

          從歷史上看,CSS 重置的主要目標是確保瀏覽器之間的一致性,并撤消所有默認樣式。這段 CSS 重置代碼并沒有真正做這些事情。

          如今,瀏覽器在布局或間距方面沒有太大的差異??偟膩碚f,瀏覽器準確地實現了 CSS 規范,并且一切都如你期望的那樣,所以它不再是必要的了。

          這里的 CSS 重置可能不符合“CSS重置”的經典定義,但更具創造性!

          1. box-sizing 模型

          先來看一段代碼,假設沒有應用其他 CSS,以下場景中的 .box 元素有多寬?

          <style>
            .parent {
              width: 200px;
            }
            .box {
              width: 100%;
              border: 2px solid hotpink;
              padding: 20px;
            }
          </style>
          
          <div class="parent">
            <div class="box"></div>
          </div>
          

          這里的 .box 元素的寬度為:100%。因為它的父級寬度為 200px ,所以 100% 將解析為 200px。但是它在哪里應用了 200px 的寬度呢?默認情況下,它將該大小應用于內容區域,即下圖中白色的區域:



          width: 100% 聲明會將 .box 的內容框設置為 200px。而 padding 將增加額外的 40 px(每邊 20 px)。border 將增加額外的 4px(每邊 2px)。當進行計算時,粉紅色矩形的寬度將是 244 px。

          當嘗試將 244px 的框放入寬度為 200px 的父級時,就會發生溢出:

          我們可以通過設置以下規則來更改這種奇怪的行為:

          *, *::before, *::after {
            box-sizing: border-box;
          }
          

          應用此規則后,百分比將根據 border-box 進行解析。在上面的例子中,粉色框寬度為 200 px,內部內容框的寬度將縮小到 156 px(200 px - 40 px - 4 px)。

          這是一條必須具備的規則,它使 CSS 更好用。這里使用通配符選擇器 (*) 將它應用于所有元素和偽元素。與人們普遍的看法相反,這對性能來說并不壞。

          網絡上有一些人建議改為執行以下操作:

          html {
            box-sizing: border-box;
          }
          *, *:before, *:after {
            box-sizing: inherit;
          }
          

          如果i正在嘗試遷移一個大型的已經存在的項目以使用 border-box,這可能是一個有用的策略。如果要從頭開始一個全新的項目,這就是沒有必要的。為了簡單起見,上面的 CSS 重置中省略了它。

          那在什么時候,這是有用的呢?下面來看一個可能有用的示例。如果您正在嘗試遷移一個大型的預先存在的項目以使用 border-box,這可能是一個有用的策略。如果您要從頭開始一個全新的項目,則沒有必要。為了簡單起見,我在 CSS 重置中省略了它。

          展開以查看何時可能有用的示例。首先,將 legacybox-sizing 屬性設置為 content-box,即 box-sizing 屬性的默認值:

          .legacy {
            box-sizing: content-box;
          }
          

          然后,當應用有一部分尚未遷移到使用 border-box 時,可以將類這樣放:

          <body>
            <header class="legacy">
              <nav>
                <!-- 遺留的內容在這里 -->
              </nav>
            </header>
            <main>
              <section>
                <!-- 現代的內容在這里 -->
              </section>
              <aside class="legacy">
                <!-- 遺留的內容在這里 -->
              </aside>
            </main>
          </body>
          

          這里,<header> 被賦予了 legacy 類,因此它使用 box-sizing: content-box。它的子元素 <nav> 具有 box-sizing: inherit。因為它的父級設置為 content-box,所以 nav 也將設置為 content-box。

          <main> 標簽沒有 legacy 類,因此它繼承自其父類 <body>。<body> 繼承自 <html>。<html> 被設置為了 border-box

          本質上,每個元素現在都會從其他元素中找出其 box-sizing 的行為。如果它有一個設置 legacy 類的祖先,它將是 content-box。否則,最終會繼承 html 標簽,即使用 border-box。

          2. 移除默認 margin

          * {
            margin: 0;
          }
          

          通常,瀏覽器會圍繞 margin 做出常識性假設。例如,默認情況下,h1 將包含比 p 更多的邊距。這些假設在處理文檔文字的上下文中是合理的,但對于現代 Web 應用而言可能并不準確。

          我們可能通常希望元素默認是沒有任何邊距的,所以就把默認的邊距全部刪除了。當確實想為特定標簽添加一些邊距時,可以在自定義樣式中來添加。通配符選擇器 (*) 的特異性極低,因此很容易覆蓋此規則。

          3. 基于百分比的高度

          html, body {
            height: 100%;
          }
          

          你有沒有試過在 CSS 中使用基于百分比的高度,卻發現它似乎沒有效果?下面來看一個例子:

          這里 main 元素具有 100% 的高度,但是元素根本沒有變長。這是行不通的,因為在流式布局(CSS 中的主要布局模式)中,高度和寬度的操作原理完全不同。元素的寬度是根據其父元素計算的,而元素的高度是根據其子元素計算的。

          當應用這條規則時,main 元素就可以增長:

          如果使用的是像 React 這樣的 JavaScript 框架,可能還希望在此規則中添加第三個選擇器:框架使用的根級的元素。

          例如,在 Next.js 項目中,將規則更新如下:

          html, body, #__next {
            height: 100%;
          }
          

          那為什么要設置基于百分比的 height,而不改用 vh 單位呢?問題就在于 vh 單元在移動設備上無法正常工作;100vh 將占據超過 100% 的屏幕空間,因為移動瀏覽器會在瀏覽器 UI 出現和消失的地方做這件事。未來,新的 CSS 單位將解決這個問題。在那之前,可以使用基于百分比的高度。

          4. 調整行高

          body {
            line-height: 1.5;
          }
          

          line-height 控制段落中每行文本之間的垂直間距。默認值因瀏覽器而異,通常在 1.2 左右。這個沒有單位的數字是基于字體大小的,就像 em 單位。行高為 1.2 時,每行高度將比元素的字體大小大 20%。

          這就是問題所在:對于有閱讀障礙的人來說,這些行擠得太緊了,很難閱讀。WCAG 標準規定行高應至少為 1.5。這個數字確實傾向于在標題和其他大字體元素上產生相當大的行:

          你可能希望在標題上覆蓋此值。我的理解是 WCAG 標準適用于“正文”文本,而不是標題。

          5. 平滑字體

          body {
            -webkit-font-smoothing: antialiased;
          }
          

          在 MacOS 電腦上,瀏覽器默認使用“亞像素抗鋸齒”。這是一種旨在通過利用每個像素內的 R/G/B 光使文本更易于閱讀的技術。過去,這被視為可訪問性的勝利,因為它提高了文本對比度。

          在 2018 年發布的 MacOS Mojave 中,Apple 禁用了整個操作系統的亞像素抗鋸齒功能。然而,像 Chrome 和 Safari 這樣的 MacOS 瀏覽器默認情況下仍然使用子像素抗鋸齒。我們需要通過將 -webkit-font-smoothing 設置為 antialiased 來關閉它。

          下圖中,左側是關閉之后的效果:

          MacOS 是唯一使用子像素抗鋸齒的操作系統,因此此規則對 Windows、Linux 或移動設備并沒有影響。如果使用的是 MacOS 計算機,則可以比較兩者的實時渲染(沒有使用CSS重置):

          p {
            -webkit-font-smoothing: subpixel-antialiased;
            font-family: sans-serif;
          }
          
          .antialiased {
            -webkit-font-smoothing: antialiased;
          }
          

          效果如下:

          6. 媒體默認值

          img, picture, video, canvas, svg {
            display: block;
            max-width: 100%;
          }
          

          在 HTML 中,圖像被認為是內聯元素。這意味著它應該用在段落中間,像<em><strong>一樣。這與大多數時候使用圖像的方式不一致。通常,對待圖像的方式與對待段落、標題的方式相同,都是布局元素。

          但是,如果嘗試在布局中使用內聯元素,就會發生奇怪的事情。如果你曾經有過一個神秘的 4px 間隙,它不是paddingmarginborder,它可能是瀏覽器用行高添加的內聯空間。

          通過給圖片設置 display: block 就避免了這種問題。除此之外,還設置了max-width: 100%。這樣做是為了防止大圖溢出,如果它們被放置在了一個不夠寬的容器中。大多數塊級元素會自動增長/收縮以適應其父元素,但像 <img> 這樣的媒體元素很特殊:它們被稱為替換元素,并且它們不遵循這些規則。

          如果圖像的原始尺寸為 800×600,即使將其放入寬度為 500px 的父元素中,其寬度也將是 800px。這條規則將防止該圖像超出其容器,這可能是更明智的默認行為。

          7. 繼承表單控件的字體

          input, button, textarea, select {
            font: inherit;
          }
          

          默認情況下,按鈕和輸入框不會從其父元素繼承排版樣式。相反,它們有自己的怪異風格。例如,<textarea> 將使用系統默認的等寬字體。input 輸入將使用系統默認的無襯線字體。兩者都將選擇很小的字體大小(在 Chrome 中為 13.333px)。在移動設備上閱讀 13 px 的文本會很困難。當聚焦一個小字體的 input 時,瀏覽器會自動放大,讓文本更容易閱讀。

          這是一個不太好的體驗:

          如果想要避免這種自動縮放行為,輸入的字體大小至少需要 1rem / 16px。下面是解決該問題的一種方法:

          input, button, textarea, select {
            font-size: 1rem;
          }
          

          這的確解決了自動縮放問題,但這這是表面上的。這個問題的根本原因是:表單輸入不應該有自己的排版樣式。

          input, button, textarea, select {
            font: inherit;
          }
          

          font 是一種很少使用的速記,它設置了一些與字體相關的屬性,如 font-size、font-weightfont-family。通過將其設置為 inherit,就指定這些元素與其周圍環境中的排版相匹配。只要不為正文設置很小的字體,這樣做就可以解決這些問題。

          8. 自動換行

          p, h1, h2, h3, h4, h5, h6 {
            overflow-wrap: break-word;
          }
          

          在 CSS 中,如果一行中沒有足夠的空間容納所有字符,文本將自動換行。默認情況下,算法會尋找“軟換行”的機會,這些是算法可以拆分的字符。在英語中,唯一的軟換行機會就是空格和連字符,但這因語言而異。

          如果一行中沒有任何軟換行機會,并且它不適合換行,就會導致文本溢出:

          這可能會導致出現水平滾動條,也可能會導致文本與其他元素重疊,或者滑到圖像/視頻后面。

          overflow-wrap 屬性可以調整換行算法,并允許它在找不到軟換行機會時使用硬換行:

          除此之外,還可以嘗試添加 hyphens 屬性:

          p {
            overflow-wrap: break-word;
            hyphens: auto;
          }
          

          hyphens: auto 使用連字符(在支持它的語言中)來指定硬換行,它使硬換行更加普遍。如果文本列非常窄,這可能是值得的,但它也可能有點分散注意力。所以并沒有將其包含在重置中,但值得一試!

          9. 根層疊上下文

          #root, #__next {
            isolation: isolate;
          }
          

          這一項是是可選的。通常只有在使用像 React 這樣的 JavaScript 框架時才需要它。isolation 屬性允我們創建一個新的層疊上下文,而無需設置 z-index。這就可以保證某些高優先級元素(例如模態框、下拉菜單、tooltip)將始終顯示在應用中的其他元素之上。

          我們需要根據使用的框架來調整選擇器,該選擇器選擇的是應用中渲染的頂級元素。例如,create-react-app 使用的是 <div id="root">,所以應該使用選擇器#root。

          最后,再來看一下這些重置樣式的完整代碼,可以將其復制/粘貼到自己的項目中:

          
          *, *::before, *::after {
            box-sizing: border-box;
          }
          * {
            margin: 0;
          }
          html, body {
            height: 100%;
          }
          body {
            line-height: 1.5;
            -webkit-font-smoothing: antialiased;
          }
          img, picture, video, canvas, svg {
            display: block;
            max-width: 100%;
          }
          input, button, textarea, select {
            font: inherit;
          }
          p, h1, h2, h3, h4, h5, h6 {
            overflow-wrap: break-word;
          }
          #root, #__next {
            isolation: isolate;
          }
          

          參考文章:https://www.joshwcomeau.com/css/custom-css-reset/

          ss是一種用來為Html文檔添加樣式(字體、間距、位置、顏色、角度等顯示效果)的計算機語言。學習網站W3school。

          css的引用樣式:

          一:style標簽(內聯樣式)


          通過在head標簽中間新建一個style標簽,該標簽內部存放的就是網頁文件中的css代碼。

          二:外部引用css文件(外聯樣式)



          新建一個css文件

          在head標簽中間新建一個link標簽,通過href屬性設置外部的css文件地址。rel=“stylesheet”表示我們引用的一個樣式表(css文件)。

          三:標簽內部style屬性(行內樣式)

          在開始標簽的內部可以設置一個叫做style的屬性,屬性的雙引號存放該元素代碼的css樣式(不推薦使用)。


          一般用的就是通過link標簽來引入外部css文件來修改樣式,一般修改樣式有字體,顏色,大小,文本居中,間距等。


          主站蜘蛛池模板: 日韩免费一区二区三区| 久久影院亚洲一区| 亚洲AV无码一区二三区| 亚洲国产美女福利直播秀一区二区| 久热国产精品视频一区二区三区| 亚洲国产一区国产亚洲| 久久精品免费一区二区三区 | 精品一区二区三区高清免费观看| 中文字幕一区二区精品区| 国产一区二区三区在线观看影院| 精品国产福利在线观看一区| 欧洲精品一区二区三区在线观看| 深夜福利一区二区| 日本伊人精品一区二区三区| 亚洲AV成人精品日韩一区18p | 亚洲日韩国产欧美一区二区三区 | 国产精品美女一区二区视频 | 亚洲制服中文字幕第一区| 多人伦精品一区二区三区视频| 又紧又大又爽精品一区二区| 99久久精品国产免看国产一区| 成人午夜视频精品一区| 人妻激情偷乱视频一区二区三区 | 日韩精品一区二区午夜成人版| 亚洲高清一区二区三区| 国产激情з∠视频一区二区 | 日韩在线一区二区三区免费视频| 国产精品一区二区久久国产| 在线观看日韩一区| 国产一区二区三区美女| 日本精品一区二区久久久| 女人18毛片a级毛片一区二区| 亚洲AV本道一区二区三区四区| 亚洲第一区在线观看| 一区二区免费国产在线观看| 国产AV国片精品一区二区| 亚洲免费视频一区二区三区| 免费看一区二区三区四区| 麻豆亚洲av熟女国产一区二| 韩国理伦片一区二区三区在线播放| 中文字幕无码不卡一区二区三区|