整合營銷服務商

          電腦端+手機端+微信端=數(shù)據(jù)同步管理

          免費咨詢熱線:

          為什么你永遠不應該在CSS中使用px來設置字體大小

          為什么你永遠不應該在CSS中使用px來設置字體大小

          osh Collinsworth的博客文章“永遠不要用px作為字體大小”中,作者討論了為什么不應該使用像素(px)作為網(wǎng)頁字體大小的單位[1]。作者指出,相對于容器、瀏覽器或用戶的字體大小,px值是靜態(tài)的。無論用戶的字體偏好設置如何,當您以靜態(tài)像素設置值時,它將覆蓋用戶的選擇,以您指定的確切值替代。這意味著,如果您的樣式表使用像素單位,可能導致訪問您網(wǎng)站的用戶難以閱讀。

          因此,作者建議使用相對單位,如em、rem或百分比,而不是像素。這些單位是基于用戶的字體大小偏好設置進行縮放的,從而提供了更好的可訪問性和可讀性。尤其是在設計響應式網(wǎng)站時,相對單位能夠提高跨設備的兼容性。通過使用相對單位,設計師可以確保網(wǎng)站在不同設備和瀏覽器中以合適的字體大小顯示[1]。

          下面是正文:

          在 Web 開發(fā)領域中,有很多誤解流傳,即使它們被反駁了很多次也仍然存在。"外部鏈接應該總是在新標簽頁中打開" 就是一個很好的例子。CSS Tricks 在將近十年前就對此進行了詳細的解釋(簡而言之:大多數(shù)情況下是錯誤的),但它似乎仍然在某些角落中存在。

          案例證明:在CSS中, px , emrem 單位之間沒有功能上的區(qū)別的想法是一個我一遍又一遍聽到的誤解,因此我想在這里發(fā)帖來解決這個問題。

          我們要非常清楚:在CSS中使用的單位絕對很重要。并且在設置時 font-size 應盡可能避免使用 px 。

          我們在談論什么單位,它們是做什么的?

          在我們討論為什么應該避免使用 px 作為 font-size 之前,讓我們確保我們都清楚我們正在談論哪些單位,以及它們的一般行為。

          px

          px 是像素的縮寫……雖然現(xiàn)在大多數(shù)情況下它不再是一個真正的像素。在顯示器通常是一個相對可預測的低分辨率像素比例,比如1024×768的時代, 1px 通常等于屏幕上的一個實際像素。

          屏幕使用稱為像素的彩色光點陣來顯示圖像。一個像素是顯示器上的一個彩色光點;硬件能夠呈現(xiàn)的最小可能的“點”。這就是我在本節(jié)中所說的“字面上的”、“實際的”或“設備”像素;物理世界中的一個像素。

          然而,當高分辨率(有時稱為“視網(wǎng)膜”)屏幕出現(xiàn)時,設備開始將更多的像素壓縮到更小的空間中,這些物理設備像素變得非常微小。在高分辨率屏幕上瀏覽網(wǎng)頁,如果CSS中的 1px 仍然對應于一個字面設備像素,那么甚至閱讀任何內(nèi)容都將非常困難,因為像素本身正在迅速縮小。畢竟,現(xiàn)代智能手機的分辨率甚至比高清電視還要高。

          所以現(xiàn)在, 1px 通常對應于放大的“縮放”像素的大小,而不是實際硬件上的字面像素。在我們的 CSS 中, 1px 的東西可能會占用多個物理硬件像素,而我們沒有任何純 CSS 的方法來指定一個字面設備像素。但這沒關系,因為它們通常太小了,我們不想去處理它們。

          一個例子:iPhone 14 Pro 上的像素非常微小,16px 在字面上的設備像素大小大約相當于2pt字號的印刷字體大小。好在瀏覽器為我們縮放了它們!

          大多數(shù)情況下,這些并不在本討論的語境中真正重要,但我認為了解這些還是很好的。重要的部分是:1px 等于瀏覽器視為單個像素的任何內(nèi)容(即使在硬件屏幕上它不是真正的像素)。

          em 和 rem

          這就帶我們來到了 emrem ,它們彼此相似。繼續(xù)講述不嚴格相關但仍然有趣的小知識:"em" 是一個排版術語,實際上比計算機早了幾十年。在排版上,一個 em 等于當前字體大小。

          如果你將字體大小設置為 32pt(“pt”是另一個仍然有時使用的舊排版術語),那么 1em 就是32pt。如果當前字體大小為 20px ,那么 1em=20px。

          在網(wǎng)頁上,默認字體大小為 16px 。一些用戶從不更改默認設置,但許多人會更改。但默認情況下, 1em1rem 都將等于 16px 。

          “Em” 最初是指 “M” 字符的寬度,這也是名稱的由來。但現(xiàn)在它指的是當前字體大小,而不是特定字形的尺寸。

          EM 和 REM 之間的區(qū)別

          為了區(qū)分這兩者:1rem 始終等于瀏覽器的字體大小,或者更準確地說是 html 元素的字體大小。rem 代表“根em”,而網(wǎng)頁的根是<html>標簽。因此, 1rem=document 字體大小。(默認情況下,這是 16px ,但可以被用戶覆蓋。)

          另一方面,em是當前元素的字體大小。看下面的CSS:

          .container {
            font-size: 200%;
          }
          
          p {
            font-size: 1em;
          }
          

          考慮到上述 CSS, .container 元素內(nèi)的段落將會變成原來的兩倍大小。這是因為 1em 表示“當前字體大小”,在 .container 內(nèi),它是200%1em × 200%=2em (默認為 32px )。

          然而, .container 元素外的段落仍將是 1em 的正常字體大?。J為 16px )。

          如果我們在上面的CSS中將 em 更改為 rem ,那么所有段落標簽的字體大小將始終是瀏覽器的默認大小,無論它們在哪里。

          font-size: 1em 等同于 font-size: 100% 。em 和 % 單位在其他情況下并不總是等價的;例如, width: 1emwidth: 100% 很可能會非常不同,因為此時百分比是基于父容器的寬度而不是其字體大小。但是,就 font-size 屬性而言, %em 是相同的。

          總結(jié)一下:

          • 1em 是當前元素的字體大小。
          • 1rem (根em)是文檔的字體大?。礊g覽器的字體大?。?。

          好的,那就是單位的含義和來源?,F(xiàn)在讓我們回答為什么使用哪個單位很重要。

          為什么這一切都很重要

          再次強調(diào)的誤解是:既然 1em16px 相等,那么選擇哪個單位并不重要。這似乎是合理的;如果 16px=1rem ,那么選擇哪種方式輸入似乎并不重要。

          記住, emrem 是相對的;默認情況下,它們都(最終)基于瀏覽器的字體大小。

          2rem 是瀏覽器字體大小的兩倍;0.5rem 是其一半,依此類推。因此,如果用戶更改其首選字體大小,如果使用 emrem ,則網(wǎng)站上的所有文本都會相應更改,就像應該的那樣。2rem 仍然是該字體大小的兩倍;0.5rem 仍然是其一半。

          相比之下, px 值是靜態(tài)的。無論容器、瀏覽器或用戶的字體大小如何, 20px 只是 20px 。當設置靜態(tài)像素值時,無論用戶的字體偏好大小如何,它都會覆蓋該選擇并使用指定的確切值。

          批判性地說,這意味著如果你的樣式表使用 px 在任何地方設置 font-size ,那么基于該值的任何文本都將無法由用戶更改。

          那是非常糟糕的事情。它是不可訪問的,甚至可能會阻止某人完全使用該網(wǎng)站。

          因此,雖然可能存在一些有效的用例來解釋這種行為,但它絕對不是你想要的默認行為。

          這也是避免使用視口單位(如 vw 或 vh )設置字體大小的非常好的理由。它們也是靜態(tài)的,用戶無法覆蓋。最多,像 calc(1rem + 1vw) 這樣的值可能是可以接受的,因為它仍然包含 rem 作為基礎。即便如此,我仍建議使用 clamp() 或媒體查詢來設置最小和最大值,因為屏幕尺寸往往遠遠超出我們所期望或測試的范圍。

          超出字體大小的差異

          好的,現(xiàn)在讓我們談談當我們不特別處理 font-size 屬性時, px em / rem 如何變化。

          開發(fā)人員通常通過縮放頁面來進行測試,我認為這就是本文中心誤解的來源。當你縮放時,所有內(nèi)容都會被縮放(放大或縮小),在這種情況下,選擇 pxem / rem 作為你的CSS單位通常并不重要。就縮放而言,兩者的行為方式相同。而且,大多數(shù)視力良好的開發(fā)人員可能不會意識到其中還有更多內(nèi)容。然而,棘手的問題是:

          即使超出 font-size , px 的行為也與 emrem 不同。

          px 單位仍然與屏幕上像素的縮放值相關聯(lián)。emrem 與文檔的字體大小相關聯(lián),而不是頁面的縮放或比例。

          為了演示,請看這個 CodePen:

          https://codepen.io/collinsworth/pen/WNyvvqY

          HTML CSSResult Skip Results Iframe
          EDIT ON
          <p>Lorem, ipsum dolor sit amet consectetur adipisicing elit. Nam eum aliquam eveniet.</p>
          <p>Sapiente delectus in ab excepturi, commodi placeat quaerat saepe voluptas sunt numquam.</p>
          <p>Rerum veniam, quidem voluptatibus deleniti nihil consequatur blanditiis explicabo eum quos. Nam.</p>
          <p>Natus necessitatibus delectus neque tenetur sint illum obcaecati similique sequi doloribus eligendi?</p>
          <p>Eos quidem iure debitis dolorum repellendus ab incidunt ipsam suscipit, autem consequuntur?</p>
          
          p {
            border-bottom: 2px solid black;
            margin-top: 0;
            margin-bottom: 20px;
          }
          

          我們有幾個段落,每個段落底部有 2px 邊框,并且它們之間有 20px 邊距。請注意,我們對兩者都使用 px 單位。

          如果你放大或縮小,元素的大小和距離保持相對不變。也就是說:你放大得越多,那條線就越粗,段落之間的間距就越大。

          為了方便起見,這里有一張截圖,顯示了同一支筆的400%縮放。文本、線條和間距都變大了4倍;它們相對于彼此的大小保持不變:

          當涉及到縮放時, px 、 emrem 之間沒有真正的區(qū)別。但縮放并不是用戶使網(wǎng)站更易用的唯一方法。

          如前所述,用戶還可以指定默認和/或最小字體大小。當他們這樣做時,功能開始分歧。

          在下面的截圖中,我已將Firefox的默認字體大小設置為 64px 。看一下:

          將屏幕截圖中的文本與其上方的文本進行比較。請注意,這一次,行并沒有變粗,段落之間的邊距也沒有成比例增加。只有文本本身變大了。因為邊框?qū)挾群瓦吘喽际窃?px 中設置的,它們保持不變,不會縮放。

          但是請注意,如果將CSS中的 px 更改為相應的 rem 值,會發(fā)現(xiàn)線條和間距確實變大了!(zh-Hans)

          所以,這里的總結(jié)是:

          • 當用戶更改字體大小時, px 值不會縮放。
          • em 和 rem 的值會隨字體大小成比例調(diào)整。

          如果你想要一個交互式演示,將所有這些內(nèi)容聯(lián)系在一起,請查看最終的 CodePen;調(diào)整頂部的滑塊以查看修改文檔字體大小對各種元素的影響,基于它們使用的 CSS 單位。https://codepen.io/collinsworth/pen/KKepeMQ

          選擇哪一個

          因此,知道 emrem 會隨字體大小縮放,但 px 值不會,那么我們該怎么辦?我們應該永遠不使用 px 嗎?

          雖然我認為如果你選擇這條路,你可能會沒事,但我仍然認為 px 有其存在的意義。

          我們知道當用戶調(diào)整字體大小時 px 值不會改變,這意味著像素單位實際上是某些美學元素的不錯選擇。也許我們有一定的間距,我們不希望在字體大小變大時變得更大。(如果默認情況下是一個大塊的負空間,也許允許它縮放到更大的尺寸是沒有意義的。)

          也許有一些邊框大小我們不想改變,或者頁面上有用 CSS 創(chuàng)建的裝飾元素,在更大的字體大小下看起來效果不佳。也許我們不希望填充隨著字體大小的增加而膨脹。在所有這些情況下, px 仍然是一個不錯的選擇。

          我個人建議使用 rem 來設置所有的大小。我只在想要與當前字體大小成比例的東西(例如,與一些文本旁邊的圖標應該與字符的高度完全相同,并且在一側(cè)有半個字符的情況)中添加 em 。我不會在任何地方使用 px ,除非是明確不想隨字體大小縮放的設計元素。

          永遠不要用 px 單位中設置 font-size ,除非你非常確定你在做什么,它會如何行動,以及在你這樣做時它是否仍然可訪問。

          關于媒體查詢的重要說明

          出于與上述所有原因相同的原因,重要的是要避免在 @media 查詢中使用 px ;當用戶縮放時,它將正常工作,但是使用 px 的媒體查詢將在用戶自己設置更大的字體大小時失敗。

          @media (min-width: 800px) {
            /* Changing font size does NOT affect this breakpoint */
          }
          
          @media (min-width: 50rem) {
            /* Changing font size DOES affect this breakpoint */
          }
          

          這是因為隨著字體大小的增加, 50rem 會根據(jù)用戶的偏好變成不同的值,而 800px 則不會。

          很可能,當我們?yōu)檩^大的斷點編寫CSS時,我們認為有足夠的屏幕空間讓元素擴展。如果用戶設置了非常大的字體大小,則可能不是這種情況,將媒體查詢設置為 rem 而不是 px 可以幫助我們避免這種假設并響應用戶的偏好。

          我在這個網(wǎng)站上遇到了這個問題;我把所有的斷點都設置在 px 上。然而,當我將默認字體大小設置得更大時,我的媒體查詢沒有響應,因為它們?nèi)匀恢徊榭雌聊坏南袼貙挾?。因此,我仍然有一個微小的側(cè)邊欄,里面塞滿了難以辨認的巨大文本,因為我沒有考慮用戶的偏好。在那之后,我立即改為 rem ,問題得到了解決。

          簡而言之:在媒體查詢中,除非您確定自己知道在瀏覽器中設置自己的字體大小會對用戶產(chǎn)生什么影響,否則一定要避免使用 px

          原文:https://joshcollinsworth.com/blog/never-use-px-for-font-size

          寫CSS的常用套路(下篇)...

          點擊觀看——我寫CSS的常用套路(上篇)...

          box-shadow

          為盒子添加陰影,增加盒子的立體感,可以多層疊加,并且會使陰影更加絲滑

          本demo地址:Pagination

          內(nèi)發(fā)光

          注意到box-shadow還有個inset,用于盒子內(nèi)部發(fā)光

          利用這個特性我們可以在盒子內(nèi)部的某個范圍內(nèi)設定顏色,做出一個新月形

          再加點動畫和濾鏡效果,“猩紅之月”閃亮登場!

          注意到它散發(fā)著淡淡的紅光,其實就是2個偽元素應用了模糊濾鏡所產(chǎn)生的效果

          本demo地址:Crimson Crescent Loading

          text-shadow

          文本陰影,本質(zhì)上和box-shadow相同,只不過是相對于文本而言,常用于文本發(fā)光,也可通過多層疊加來制作霓虹文本和偽3D文本等效果

          發(fā)光文本

          本demo地址:Staggered GlowIn Text

          霓虹文本

          本demo地址:Neon Text

          偽3D文本

          本demo地址:Staggered Bouncing 3D Loading

          background-clip:text

          能將背景裁剪成文字的前景色,常用來和color: transparent配合生成漸變文本

          本demo地址:Menu Hover Fill Text

          gradient

          漸變可以作為背景圖片的一種,具有很強的色彩效果,甚至可以用來模擬光

          linear-gradient

          線性漸變是筆者最常用的漸變

          這個作品用到了HTML的dialog標簽,線性漸變背景,動畫以及overflow障眼法,細心的你看出來了嗎:)

          本demo地址:Confirm Modal

          radial-gradient

          徑向漸變常用于生成圓形背景,上面例子中Snow的背景就是一個橢圓形的徑向漸變

          此外,由于背景可以疊加,我們可以疊加多個不同位置大小的徑向漸變來生成圓點群,再加上動畫就產(chǎn)生了一種微粒效果,無需多余的div元素

          本demo地址:Particle Button

          conic-gradient

          圓錐漸變可以用于制作餅圖

          用一個偽元素疊在餅圖上面,并將content設為某個值(這個值通過CSS變量計算出來),就能制作出度量計的效果,障眼法又一次完成了它的使命

          本demo地址:Gauge (No SVG)

          filter

          PS里的濾鏡,blur最常用

          融合效果

          當blur濾鏡和contrast濾鏡一起使用時,會產(chǎn)生一種融合(gooey)的奇特效果

          本demo地址:Snow Scratch

          backdrop-filter

          對背景應用濾鏡,產(chǎn)生毛玻璃的效果

          本demo地址:Frosted Glass

          mix-blend-mode

          PS里的混合模式,常用于文本在背景下的特殊效果

          以下利用濾色模式(screen)實現(xiàn)文本視頻蒙版效果

          本demo地址:Video Mask Text

          clip-path

          PS里的裁切,可以制作各種不規(guī)則形狀。如果和動畫結(jié)合也會相當有意思

          本demo地址:Name Card Hover Expand

          故障效果

          由于clip-path有裁切功能,因此可以將多個文字疊在一起,并按比例裁切成多分,再應用交錯動畫,就能制作出酷炫的故障效果(glitch)。

          本demo地址:Cross Bar Glitch Text

          mask

          PS里的遮罩。所謂遮罩,就是原始圖片只顯示遮罩圖片非透明的部分

          鏤空效果

          雖然clip-path能裁切出形狀,但它無法鏤空,因為形狀的里面它管不著

          可能有人(包括我)會用偽元素來“模擬”鏤空(通過設置同樣的背景色),但這樣并非真的鏤空,換了個背景或浮在圖片上就會暴露出來,這時我們就要求助于遮罩了

          假設,你想制作一個空心的圓環(huán),那么你只需將一個徑向漸變作為元素的遮罩,并且第一個color-stop設置為透明,其他的color-stop設置為其他顏色即可,因為遮罩的定義就是只顯示遮罩圖片非透明的部分

          注意:為了消除鋸齒,這個徑向漸變的中間需要有一個額外的color-stop用于緩沖,長度設置為原長度加0.5px即可

          本demo地址:Circle Arrow Nav

          -webkit-box-reflect

          投影效果,不怎么常用,適合立體感強的作品

          本demo地址:Card Flip Reflection

          web animations

          雖然這并不是一個CSS特性,但是它經(jīng)常用于完成那些CSS所做不到的事情

          那么何時用它呢?當CSS動畫中有屬性無法從CSS中獲取時,自然就會使用到它了

          跟蹤鼠標的位置

          目前CSS還尚未有獲取鼠標位置的API,因此考慮用JS來進行

          通過查閱相關的DOM API,發(fā)現(xiàn)在監(jiān)聽鼠標事件的API中,可通過e.clientX和e.clientY來獲得鼠標當前的位置

          既然能夠獲取鼠標的位置,那么跟蹤鼠標的位置也就不是什么難事了:通過監(jiān)聽mouseenter和mouseleave事件,來獲取鼠標出入一個元素時的位置,并用此坐標來當作鼠標的位移距離,監(jiān)聽mousemove事件,來獲取鼠標在元素上移動時的位置,同樣地用此坐標來當作鼠標的位移距離,這樣一個跟蹤鼠標的效果就實現(xiàn)了

          本demo地址:Menu Hover Image

          CSS Houdini

          CSS Houdini是CSS的底層API,它使我們能夠通過這套接口來擴展CSS的功能

          讓漸變動起來

          目前來說,我們無法直接給漸變添加動畫,因為瀏覽器不理解要改變的值是什么類型

          這時,我們就可以利用CSS.registerProperty()來注冊我們的自定義變量,并聲明其語法類型(syntax)為顏色類型<color>,這樣瀏覽器就能理解并對顏色應用插值方法來進行動畫

          還記得上文提到的圓錐漸變conic-gradient()嗎?既然它可以用來制作餅圖,那么我們能不能讓餅圖動起來呢?答案是肯定的,定義三個變量:--color1、--color2和--pos,其中--pos的語法類型為長度百分比<length-percentage>,將其從0變?yōu)?00%,餅圖就會順時針旋轉(zhuǎn)出現(xiàn)

          利用絕對定位和層疊上下文,我們可以疊加多個從小到大的餅圖,再給它們設置不同的顏色,應用交錯動畫,就有了下面這個炫麗的效果

          本demo地址:Mawaru

          彩蛋

          將交錯動畫和偽類偽元素結(jié)合起來寫出來的慎重勇者風格的菜單

          本demo地址:Shinchou Menu

          一部分:HTML簡介

          什么是HTML?

          HTML代表超文本標記語言(Hypertext Markup Language)。它是一種用于構(gòu)建網(wǎng)頁的標記語言。HTML文件包含一組標簽,這些標簽用于定義網(wǎng)頁的結(jié)構(gòu)和內(nèi)容。瀏覽器讀取HTML文件,并根據(jù)標記中的指示呈現(xiàn)網(wǎng)頁內(nèi)容。

          HTML的主要作用是定義文本內(nèi)容、圖像、鏈接和其他媒體的排列方式,并提供交互元素,例如表單和按鈕。

          HTML的基本結(jié)構(gòu)

          每個HTML文檔都應該遵循以下基本結(jié)構(gòu):

          <!DOCTYPE html>
          <html>
          <head>
              <title>網(wǎng)頁標題</title>
          </head>
          <body>
              <!-- 內(nèi)容在這里 -->
          </body>
          </html>
          

          讓我們逐步解釋這個結(jié)構(gòu):

          • <!DOCTYPE html>:這是文檔類型聲明,它告訴瀏覽器正在使用的HTML版本。<!DOCTYPE html>表示使用HTML5。
          • <html>:HTML文檔的根元素。所有其他元素都包含在<html>標簽內(nèi)。
          • <head>:包含與文檔相關的元信息,如頁面標題、字符集聲明和外部樣式表鏈接。
          • <title>:定義網(wǎng)頁的標題,顯示在瀏覽器標簽頁上。
          • <body>:包含網(wǎng)頁的主要內(nèi)容,如文本、圖像和其他媒體。

          HTML標簽和元素

          HTML標簽是由尖括號括起來的名稱,例如<p>表示段落,<img>表示圖像。標簽通常成對出現(xiàn),有一個開始標簽和一個結(jié)束標簽。例如:

          <p>這是一個段落。</p>
          

          <p>是開始標簽,</p>是結(jié)束標簽,文本位于兩個標簽之間。標簽定義了元素的類型和結(jié)構(gòu)。

          有些HTML標簽是自封閉的,不需要結(jié)束標簽,例如<img>用于插入圖像。

          HTML注釋

          在HTML中,你可以使用注釋來添加說明性文字,注釋不會在瀏覽器中顯示。HTML注釋使用<!--開頭和-->結(jié)尾,如下所示:

          <!-- 這是一個注釋 -->
          

          注釋通常用于添加文檔說明、調(diào)試代碼或標記未來的修改。

          第二部分:HTML基本元素

          文本

          HTML中的文本通常包含在段落、標題、列表等元素中。以下是一些常見的文本元素:

          • <p>:定義一個段落。
          • <h1><h6>:定義標題,<h1>是最高級別的標題,<h6>是最低級別的標題。
          • <strong>:定義強調(diào)文本,通常以粗體顯示。
          • <em>:定義強調(diào)文本,通常以斜體顯示。
          • <a>:定義超鏈接,允許用戶點擊跳轉(zhuǎn)到其他頁面。

          示例:

          <p>這是一個段落。</p>
          <h1>這是一個標題</h1>
          <p><strong>這是強調(diào)文本。</strong></p>
          <p><em>這是斜體文本。</em></p>
          <p>訪問<a href="https://www.example.com">示例網(wǎng)站</a></p>
          

          圖像

          要在網(wǎng)頁中插入圖像,可以使用<img>標簽。它是一個自封閉標簽,需要指定圖像的src屬性來指定圖像文件的路徑。

          示例:

          htmlCopy code
          <img src="image.jpg" alt="圖像描述">
          
          • src:指定圖像文件的路徑。
          • alt:提供圖像的替代文本,用于無法加載圖像時的文字描述。

          鏈接

          通過使用<a>標簽,可以在網(wǎng)頁中創(chuàng)建鏈接。鏈接通常包含在文本或圖像中,并使用href屬性指定目標URL。

          示例:

          <a href="https://www.example.com">訪問示例網(wǎng)站</a>
          
          • href:指定鏈接的目標URL。

          列表

          HTML支持有序列表(<ol>)、無序列表(<ul>)和定義列表(<dl>)。

          無序列表

          無序列表使用<ul>標簽定義,每個列表項使用<li>標簽。

          示例:

          <ul>
              <li>項目1</li>
              <li>項目2</li>
              <li>項目3</li>
          </ul>
          

          有序列表

          有序列表使用<ol>標簽定義,每個列表項使用<li>標簽。

          示例:

          <ol>
              <li>第一項</li>
              <li>第二項</li>
              <li>第三項</li>
          </ol>
          

          定義列表

          定義列表使用<dl>標簽定義,每個定義項目使用<dt>標簽定義術語,使用<dd>標簽定義描述。

          示例:

          <dl>
              <dt>術語1</dt>
              <dd>描述1</dd>
              <dt>術語2</dt>
              <dd>描述2</dd>
          </dl>
          

          第三部分:HTML表單

          HTML表單允許用戶與網(wǎng)頁進行交互,提交數(shù)據(jù)。以下是HTML表單的基本元素:

          <form>元素

          <form>元素用于創(chuàng)建表單,可以包含文本字段、復選框、單選按鈕、下拉列表等。

          示例:

          <form action="submit.php" method="post">
              <!-- 表單元素在這里 -->
          </form>
          
          • action:指定表單數(shù)據(jù)提交的目標URL。
          • method:指定提交方法,通常是"post"或"get"。

          輸入字段

          輸入字段用于接收用戶輸入的數(shù)據(jù),常見的輸入字段類型包括文本框、密碼框、單選按鈕、復選框等。

          文本框

          文本框使用<input>標簽,type屬性設置為"text"。

          示例:

          <input type="text" name="username" placeholder="用戶名">
          
          • type:指定字段類型。
          • name:指定字段的名稱。
          • placeholder:設置文本框的占位符文本。

          密碼框

          密碼框使用<input>標簽,type屬性設置為"password"。

          示例:

          htmlCopy code
          <input type="password" name="password" placeholder="密碼">
          

          單選按鈕

          單選按鈕使用<input>標簽,type屬性設置為"radio"。

          示例:

          <input type="radio" name="gender" value="male">男
          <input type="radio" name="gender" value="female">女
          
          • name:指定單選按鈕組的名稱。
          • value:指定每個選項的值。

          復選框

          復選框使用<input>標簽,type屬性設置為"checkbox"。

          示例:

          <input type="checkbox" name="subscribe" value="yes">訂閱新聞
          

          下拉列表

          下拉列表使用<select><option>標簽創(chuàng)建。<select>定義下拉列表,而<option>定義選項。

          示例:

          <select name="country">
              <option value="us">美國</option>
              <option value="ca">加拿大</option>
              <option value="uk">英國</option>
          </select>
          
          • name:指定下拉列表的名稱。
          • 每個<option>標簽表示一個選項,使用value屬性定義選項的值。

          第四部分:HTML樣式和CSS

          HTML用于定義網(wǎng)頁的結(jié)構(gòu)和內(nèi)容,但要使網(wǎng)頁看起來更吸引人,需要使用CSS(層疊樣式表)。CSS允許你定義字體、顏色、布局等樣式。

          內(nèi)聯(lián)樣式

          可以在HTML元素內(nèi)部使用style屬性來定義內(nèi)聯(lián)樣式。

          示例:

          <p style="color: blue; font-size: 16px;">這是一個藍色的段落。</p>
          

          外部樣式表

          外部樣式表將樣式規(guī)則保存在獨立的CSS文件中,并通過<link>標簽將其鏈接到HTML文檔。

          示例(style.css):

          /* style.css */
          p {
              color: blue;
              font-size: 16px;
          }
          

          在HTML中鏈接外部樣式表:

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

          這使得可以在整個網(wǎng)站上共享相同的樣式。

          總結(jié)

          HTML是構(gòu)建現(xiàn)代網(wǎng)頁的基礎。通過學習HTML的基本語法和元素,你可以創(chuàng)建吸引人且功能強大的網(wǎng)頁。無論是文本、圖像、鏈接還是表單,HTML提供了豐富的工具來呈現(xiàn)內(nèi)容和實現(xiàn)用戶交互。

          這篇文章提供了HTML的基礎知識,但HTML是一個廣泛的主題,還有許多高級特性和技巧等待你探索。希望這篇文章對你入門HTML有所幫助,讓你能夠開始創(chuàng)建自己的網(wǎng)頁。繼續(xù)學習和實踐,你將成為一個熟練的網(wǎng)頁開發(fā)者。


          主站蜘蛛池模板: www.亚洲一区| 亚洲熟女乱综合一区二区| 国产成人免费一区二区三区| 国产在线精品一区二区高清不卡| 一区二区三区精密机械| 国产成人欧美一区二区三区| 久久综合九九亚洲一区| 亚洲一区二区三区精品视频| 日韩精品区一区二区三VR| 成人中文字幕一区二区三区| 99精品一区二区三区| 国内精自品线一区91| 韩国福利一区二区三区高清视频| 日本精品一区二区三区在线观看| 久久99国产精一区二区三区| 国产成人久久一区二区三区 | 国模私拍福利一区二区| 大帝AV在线一区二区三区| 欧洲精品无码一区二区三区在线播放| 中文字幕亚洲一区二区三区| 日本高清一区二区三区| 国产内射在线激情一区 | 春暖花开亚洲性无区一区二区| 精品人妻少妇一区二区| 色窝窝免费一区二区三区| 国产精品区一区二区三在线播放| 在线精品一区二区三区电影| 亚洲国产日韩在线一区| 中文字幕无线码一区| 福利电影一区二区| 精品亚洲AV无码一区二区| 国产在线无码视频一区二区三区| 2014AV天堂无码一区| 国产一区中文字幕在线观看| 91福利视频一区| 亚洲熟妇av一区| 在线观看国产一区二三区| 精品一区二区三区在线播放视频| 日韩综合无码一区二区| 美女啪啪一区二区三区| 高清一区二区三区日本久|