Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 日韩免费网站,中文在线字幕,亚洲精品一区二区久久

          整合營銷服務(wù)商

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

          免費(fèi)咨詢熱線:

          CSS技巧-隱藏頁面元素的幾種方法比較

          CSS技巧-隱藏頁面元素的幾種方法比較


          一說起隱藏HTML頁面上的元素,很多人第一反應(yīng)就是設(shè)置元素的css屬性display:none;值,這是一種最常見的隱藏頁面元素方法。本篇文章我們就一起看看使用CSS隱藏頁面元素的方法,以及它們的區(qū)別。

          本篇文章中的例子直接放到github地址中,感興趣的同學(xué)可以自取。

          https://github.com/zhouxiongking/article-pages/blob/master/articles/hideElement/hideElement.html

          CSS

          方法1-display:none

          正如上文說的一樣,最簡單也最粗暴的方法就是設(shè)置元素的display屬性為none;

          display:none;

          設(shè)置為display:none;的元素將不會再占用頁面空間,其占用的空間會被其他元素所占有,從而會引起瀏覽器的重排和重匯。

          方法2-visibility: hidden

          另外一種方法是設(shè)置元素的visibility屬性為hidden。

          visibility: hidden

          這種做法雖然能夠隱藏元素,但是該元素仍會占用頁面空間,因此只會導(dǎo)致瀏覽器的重匯而不會引起重排。

          如果希望元素隱藏后不會引起頁面布局的變化,則推薦使用visibility:hidden;方式。

          方法3-opacity:0

          設(shè)置元素透明度opacity屬性為0,也可以隱藏頁面元素。

          opacity:0

          在呈現(xiàn)上與visibility:hidden;方式一樣,同樣會占據(jù)頁面空間。

          差異性-頁面布局

          對頁面布局的影響主要是看是否會引起瀏覽器的重匯和重排,對應(yīng)的差異如下圖所示。

          頁面布局差異

          差異性-事件綁定

          • display:none;的元素會直接從頁面上消失,因此在該元素上綁定的事件不會生效。

          • visibility: hidden;的元素不會觸發(fā)綁定的事件。

          • opacity:0; 的元素會觸發(fā)綁定的事件,例如點(diǎn)擊會觸發(fā)click函數(shù)。

          我們可以通過以下的例子來看看。

          首先我們定義兩個(gè)div,分別設(shè)置為visibility: hidden;和opacity:0,在兩個(gè)div上分別綁定一個(gè)click事件。

          定義div元素

          綁定的事件

          當(dāng)我們在兩個(gè)元素都進(jìn)行點(diǎn)擊時(shí),可以在控制臺看到如下輸出結(jié)果。

          結(jié)果

          從上述結(jié)果可以看出和上述結(jié)論一致。

          差異性-動畫屬性

          • display:none;的元素會直接從頁面消失,因此定義transition效果完全無效。

          • visibility:hidden;的元素會在transition設(shè)置的時(shí)間內(nèi)消失,但是沒有動畫效果。

          • opacity:0;的元素可以和正常元素一樣,從頁面以動畫效果消失。

          同樣我們可以通過以下這個(gè)例子來看看。

          首先,我們定義兩個(gè)div,并設(shè)置其transition屬性。

          div元素

          定義transition效果

          我們通過將鼠標(biāo)移至元素上,可以看到兩者的差異,從而驗(yàn)證了上述結(jié)論的正確性。

          結(jié)束語

          本篇文章主要講解了使用CSS隱藏元素的幾種常用方法,并講解了它們之間的區(qū)別,以便大家在特定的場景中進(jìn)行選擇。

          SS(級聯(lián)樣式表)是網(wǎng)頁設(shè)計(jì)的支柱,用于設(shè)計(jì)網(wǎng)站的視覺呈現(xiàn)。雖然您可能已經(jīng)熟悉許多 CSS 屬性,但存在一些較少討論的屬性,它們可以增強(qiáng)您的樣式功能。在這篇文章中,我將向您介紹 15 個(gè)帶有代碼片段的 CSS 屬性。

          強(qiáng)調(diào)色

          當(dāng)涉及到復(fù)選框和單選按鈕等輸入時(shí),瀏覽器通常會使用默認(rèn)顏色,該顏色可能與 UI 的選定配色方案不太協(xié)調(diào)。

          若要保持 UI 的一致性,可以使用 accent-color 屬性更改輸入的默認(rèn)顏色。

          例如:

          SS中的浮動(Floats)、定位(Positioning)和顯示(Display)屬性是前端工程師掌握頁面布局的關(guān)鍵。本文將深入探討這些屬性的工作原理和使用場景,幫助開發(fā)者更好地理解和運(yùn)用它們來構(gòu)建響應(yīng)式和精確的網(wǎng)頁布局。

          浮動(Float)

          浮動是CSS中用于實(shí)現(xiàn)元素排列的一種方式,它可以讓元素脫離正常的文檔流,并可以向左或向右移動,直到它的外邊緣碰到包含框或另一個(gè)浮動元素的邊緣。

          .element {
            float: left; /* 或者 'right' */
          }
          

          使用場景

          • 文字環(huán)繞圖片。
          • 創(chuàng)建水平導(dǎo)航欄。
          • 無網(wǎng)格系統(tǒng)時(shí)的列布局。

          注意事項(xiàng)

          • 清除浮動(Clearing Floats):使用clear屬性可以防止元素被浮動元素覆蓋。
          .clear-element {
            clear: both; /* 可以是 'left', 'right', 或 'both' */
          }
          
          • 包含浮動(Containing Floats):浮動元素的父容器可能不會擴(kuò)展以包含浮動的子元素,可以通過清除浮動或使用其他技術(shù)(如overflow)來解決這個(gè)問題。
          • 浮動塌陷(Float Collapse):浮動元素不占據(jù)空間,可能導(dǎo)致父元素高度塌陷。

          定位(Position)

          定位屬性允許你控制元素的位置,它可以是相對于它的正常位置、相對于最近的已定位祖先元素、相對于視口或絕對位置。

          .element {
            position: static | relative | absolute | fixed | sticky;
          }
          

          使用場景

          • 相對定位(Relative Positioning):元素相對于其正常位置進(jìn)行偏移。
          .relative-element {
            position: relative;
            top: 10px;
            left: 20px;
          }
          
          • 絕對定位(Absolute Positioning):元素相對于最近的已定位父元素進(jìn)行定位。
          .absolute-element {
            position: absolute;
            top: 0;
            right: 0;
          }
          
          • 固定定位(Fixed Positioning):元素相對于視口進(jìn)行定位,即使頁面滾動也不會移動。
          .fixed-element {
            position: fixed;
            bottom: 0;
            left: 0;
          }
          
          • 粘性定位(Sticky Positioning):元素基于用戶的滾動位置在相對和固定定位之間切換。
          .sticky-element {
            position: sticky;
            top: 10px;
          }
          

          注意事項(xiàng)

          • 定位元素可能會脫離文檔流,影響周圍元素的布局。
          • z-index屬性可以控制堆疊順序。
          • 絕對定位元素的容器應(yīng)有position: relative;,以便正確定位。

          顯示(Display)

          display屬性是CSS中最重要的用于控制布局的屬性之一,它定義了元素如何顯示在頁面上。

          .element {
            display: block | inline | inline-block | flex | grid | none;
          }
          

          使用場景

          • 塊級元素(Block):display: block;使元素表現(xiàn)為塊級,占據(jù)新的行。
          .block-element {
            display: block;
          }
          
          • 內(nèi)聯(lián)元素(Inline):display: inline;使元素在文本行中顯示,不開始新行。
          .inline-element {
            display: inline;
          }
          
          • 內(nèi)聯(lián)塊元素(Inline-Block):display: inline-block;允許元素并排排列,同時(shí)擁有塊級元素的寬度和高度屬性。
          .inline-block-element {
            display: inline-block;
          }
          
          • 彈性盒子(Flex):display: flex;創(chuàng)建了一個(gè)彈性容器,其子元素可以靈活地在容器內(nèi)排列。
          .flex-container {
            display: flex;
          }
          
          • 網(wǎng)格(Grid):display: grid;創(chuàng)建了一個(gè)網(wǎng)格容器,可以定義行和列以及在網(wǎng)格內(nèi)放置元素。
          .grid-container {
            display: grid;
          }
          
          • 隱藏元素(None):display: none;將元素隱藏,且不為元素保留空間。
          .hidden-element {
            display: none;
          }
          

          注意事項(xiàng)

          • 使用display: none;與visibility: hidden;的區(qū)別在于后者仍保留元素占據(jù)的空間。
          • display: flex;和display: grid;為現(xiàn)代布局提供了更多控制,通常比浮動和定位更優(yōu)。

          示例

          HTML結(jié)構(gòu)

          <!DOCTYPE html>
          <html lang="en">
          <head>
          <meta charset="UTF-8">
          <meta name="viewport" content="width=device-width, initial-scale=1.0">
          <title>CSS Float, Position, and Display Example</title>
          <link rel="stylesheet" href="styles.css">
          </head>
          <body>
          
          <div class="header">
            <div class="logo">Logo</div>
            <div class="navigation">Navigation</div>
          </div>
          
          <div class="main-content">
            <div class="sidebar">Sidebar</div>
            <div class="content">Content</div>
          </div>
          
          <div class="footer">Footer</div>
          
          <div class="fixed-element">Fixed Element</div>
          
          </body>
          </html>
          

          CSS樣式

          /* Reset some default styles */
          body, h1, p {
            margin: 0;
            padding: 0;
          }
          
          /* Header styles */
          .header {
            background-color: #f8f8f8;
            border-bottom: 1px solid #e7e7e7;
            padding: 10px;
            overflow: hidden; /* Clearfix for floated elements */
          }
          
          .logo {
            float: left;
            font-size: 24px;
          }
          
          .navigation {
            float: right;
            font-size: 18px;
          }
          
          /* Main content styles */
          .main-content {
            padding: 20px;
          }
          
          .sidebar {
            float: left;
            width: 200px;
            background-color: #ddd;
            padding: 10px;
          }
          
          .content {
            margin-left: 220px; /* Make space for the sidebar */
            background-color: #eee;
            padding: 10px;
          }
          
          /* Footer styles */
          .footer {
            background-color: #f8f8f8;
            border-top: 1px solid #e7e7e7;
            text-align: center;
            padding: 10px;
            position: relative; /* For demonstration purposes */
            top: 20px; /* Move the footer down a bit */
          }
          
          /* Fixed element styles */
          .fixed-element {
            position: fixed;
            bottom: 10px;
            right: 10px;
            padding: 5px 10px;
            background-color: #333;
            color: #fff;
            z-index: 1000; /* Ensure it stays on top */
          }
          
          /* Clearfix hack */
          .clearfix::after {
            content: "";
            clear: both;
            display: table;
          }
          

          在這個(gè)例子中,我們創(chuàng)建了一個(gè)包含頭部、側(cè)邊欄、主要內(nèi)容和頁腳的基本布局。我們使用浮動來對齊頭部的Logo和導(dǎo)航,以及創(chuàng)建一個(gè)側(cè)邊欄。我們還使用了相對定位來稍微下移頁腳,并使用固定定位為頁面添加了一個(gè)始終可見的固定元素。最后,我們使用了overflow: hidden;來清除頭部中浮動元素的影響。

          結(jié)語

          浮動、定位和顯示屬性是CSS中構(gòu)建復(fù)雜布局的強(qiáng)大工具。通過深入理解和正確應(yīng)用這些屬性,前端工程師可以創(chuàng)建出既美觀又功能強(qiáng)大的網(wǎng)頁。隨著Web標(biāo)準(zhǔn)的不斷發(fā)展,我們也需要不斷學(xué)習(xí)和適應(yīng)新的CSS特性,以保持我們技能的前沿性。


          主站蜘蛛池模板: 人妻视频一区二区三区免费| 黑巨人与欧美精品一区| 久久久久久一区国产精品| 一区二区三区日韩| 国产在线一区二区三区av| 亚洲区精品久久一区二区三区| 亚洲av无码一区二区三区在线播放 | 国产vr一区二区在线观看| 亚洲AV日韩综合一区| 精品视频无码一区二区三区| 国产日韩一区二区三免费高清| 精品视频一区二区| 日韩视频免费一区二区三区| 久久人妻av一区二区软件| 成人免费一区二区三区| 一区免费在线观看| 日本在线视频一区| 精品一区二区三区AV天堂| 日韩美一区二区三区| 国产成人午夜精品一区二区三区| 日韩亚洲AV无码一区二区不卡 | 国产一区二区精品久久岳| 日韩精品一区二区三区不卡 | 亚洲AV成人一区二区三区AV| 国产在线不卡一区二区三区 | 久久精品一区二区免费看| 夜夜嗨AV一区二区三区| 国产亚洲综合一区柠檬导航 | 中文字幕一区二区三区在线不卡| 国产AV国片精品一区二区| 免费看一区二区三区四区| 亚洲韩国精品无码一区二区三区| 国产无线乱码一区二三区 | 亲子乱av一区区三区40岁| 日本一区二区三区免费高清| 日韩在线观看一区二区三区| 在线视频国产一区| 精品国产一区二区22| 伦理一区二区三区| 亚洲综合色一区二区三区小说| 99精品国产高清一区二区|