1. 程式人生 > >從零開始學 Web 之 CSS(五)可見性、內容移除、精靈圖、屬性選擇器、滑動門

從零開始學 Web 之 CSS(五)可見性、內容移除、精靈圖、屬性選擇器、滑動門

大家好,這裡是「 Daotin的夢囈 」從零開始學 Web 系列教程。此文首發於「 Daotin的夢囈 」公眾號,歡迎大家訂閱關注。在這裡我會從 Web 前端零基礎開始,一步步學習 Web 相關的知識點,期間也會分享一些好玩的專案。現在就讓我們一起進入 Web 前端學習的冒險之旅吧!

一、CSS可見性

overflow: hidden;   /*溢位隱藏 */   
visibility: hidden;  /* 隱藏元素    隱藏之後還保留原來的位置。*/
display: none;      /*  隱藏元素    隱藏之後不保留原來的位置。*/
display: block;    /* 元素可見 */

display:nonedisplay:block 常配合js使用(如:滑鼠經過時出現,滑鼠離開時消失)。

二、css之內容移除(logo優化)

1、方法一

text-indent: -5000em;

text-indent 屬性規定文字塊中首行文字的縮排。注意: 負值是允許的。如果值是負數,將向左縮排。

之所以要寫著兩個字是為了 SEO,因為背景圖片 SEO 看不懂.

2、方法二

將元素高度設定為0, 使用內邊距將盒子撐開,給盒子使用overflow:hidden; 將文字隱藏。

.box{
  width:300px;
  height:0;
  padding-top:100px;
  overflow:hidden;
  background:red;
}

三、CSS精靈圖

上圖所示為網頁的請求原理圖,當用戶訪問一個網站時,需要向伺服器傳送請求,網頁上的每張影象都要經過一次請求才能展現給使用者。

然而,一個網頁中往往會應用很多小的背景影象作為修飾,當網頁中的影象過多時,伺服器就會頻繁地接受和傳送請求,這將大大降低頁面的載入速度。為了有效地減少伺服器接受和傳送請求的次數,提高頁面的載入速度,出現了CSS精靈技術(也稱CSS Sprites)。

簡單地說,CSS精靈是一種處理網頁背景影象的方式。它將一個頁面涉及到的所有零星背景影象都集中到一張大圖中去,然後將大圖應用於網頁,這樣,當用戶訪問該頁面時,只需向服務傳送一次請求,網頁中的背景影象即可全部展示出來。

通常情況下,這個由很多小的背景影象合成的大圖被稱為精靈圖,如下圖所示為淘寶網站中的一個精靈圖。

工作原理:
CSS 精靈其實是將網頁中的一些背景影象整合到一張大圖中(精靈圖)。然而,各個網頁元素通常只需要精靈圖中不同位置的某個小圖,要想精確定位到精靈圖中的某個小圖,就需要使用CSS的background-image、background-repeat和background-position屬性進行背景定位,其中最關鍵的是使用background-position屬性精確地定位。

舉例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
        body,ul,li{
            margin: 0;
            padding: 0;
        }

        ul, li{
            list-style: none;
        }

        .box{
            height: 48px;
            background: #222;
            margin-top: 50px;
        }

        .con{
            width: 1182px;
            height: 48px;
            margin: 0 auto;
            position: relative;
        }

        .con ul li{
            float: left;
            
        }

        .con ul li a{
            text-decoration: none;
            color: #fff;
            display: inline-block;
            height: 48px;
            font: 16px/48px microsoft yahei;
            padding: 0 18px;
        }

        .con ul li a:hover{
            background: #2774A2;
        }

        .con .hot{
            position: absolute;
            width: 31px;
            height: 21px;
            background: url("spirit.png") -58px 0;
            left:221px;
            bottom:35px;
        }

        .con .new{
            position: absolute;
            width: 31px;
            height: 21px;
            background: url("spirit.png") -135px 0;
            left:90px;
            bottom:35px;
        }
    </style>
</head>
<body>
    <div class="box">
        <div class="con">
            <ul>
                <li><a href="#">首頁</a></li>
                <li><a href="#">Java</a></li>
                <li><a href="#">IOS</a></li>
                <li><a href="#">PHP</a></li>
                <li><a href="#">C/C++</a></li>
                <li><a href="#">UI設計</a></li>
                <li><a href="#">前端與移動開發</a></li>
                <li><a href="#">問答專區</a></li>
                <li><a href="#">Python</a></li>
                <li><a href="#">網路營銷</a></li>
                <li><a href="#">活動專區</a></li>
            </ul>
            <div class="hot"></div>
            <div class="new"></div>
        </div>
    </div>
</body>
</html>

PS:之所以選擇con作為父盒子而不是box作為父盒子,是因為box的寬度不定,不同的顯示器寬度不同,那麼new和hot的定位就有問題。

四、屬性選擇器

input[type="text"][class] {
  width: 20px;
  height: 20px;
}  

選擇有type屬性為text,並且有class屬性的標籤。

input[type="text"][class="id"] {
  width: 20px;
  height: 20px;
}  

選擇有type屬性為text,並且有class屬性,並且class屬性為 id 的標籤。

五、CSS滑動門

特點:邊上是這種圓弧型的或者其他形狀的,可以變換長度的樣式。

PS:浮動之後寬度不是父盒子的寬度,而是內容撐開的寬度。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
        body,ul,li{
            margin: 0;
            padding: 0;
        }
        ul,li{
            list-style: none;
        }
        ul li{
            float: left;
        }
        ul li a{
            display: inline-block;
            height: 35px;
            background: url("bg_r1_c1.png") no-repeat;
            padding-left: 7px;
        }

        ul li a span{
            display: inline-block;
            height: 35px;
            background: url("bg_r1_c2.png") right;
            padding-right: 25px;
            color: #fff;
            line-height: 35px;
        }

        ul li a:hover{
            background: url("bbg_r1_c1.png");
        }

        ul li a:hover span{
            background: url("bbg_r1_c2.png") right;
        }
    </style>
</head>
<body>
    <ul>
        <li><a href="#"><span>網易雲音樂</span></a></li>
        <li><a href="#"><span>微信</span></a></li>
        <li><a href="#"><span>螞蟻花唄</span></a></li>
    </ul>
</body>
</html>

微信案例:

現象:滑鼠經過時,背景凸起。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
        body,ul,li,a,span{
            margin: 0;
            padding: 0;
        }
        ul,li{
            list-style: none;
        }
        .nav{
            height: 74px;
            background: url("weixin_bg.jpg");
        }

        .nav-con{
            width: 600px;
            margin: 0 auto;
        }

        li{
            float: left;
            height: 74px;
            line-height: 74px;
            margin-right: 60px;
        }

        li a{
            display: inline-block;
            text-decoration: none;
            color: #fff;
            height: 33px;
            line-height: 33px;
            background: url("bg.png") no-repeat 0 -144px;
            padding-left: 13px;
        }

        a span{
            display: inline-block;
            height: 33px;
            background: url("bg.png") no-repeat right -144px;
            padding-right: 13px;
        }

        a:hover{
            background: url("bg.png") no-repeat 0 -192px;
        }

        a:hover span{
            background: url("bg.png") no-repeat right -192px;
        }
    </style>
</head>
<body>
    <div class="nav">
        <div class="nav-con">
            <ul>
                <li><a href="#"><span>首頁</span></a></li>
                <li><a href="#"><span>下載文章</span></a></li>
                <li><a href="#"><span>微信公眾公眾公眾助手</span></a></li>
            </ul>
        </div>
    </div>
</body>
</html>

相關推薦

開始 Web CSS可見內容精靈屬性選擇滑動

大家好,這裡是「 Daotin的夢囈 」從零開始學 Web 系列教程。此文首發於「 Daotin的夢囈 」公眾號,歡迎大家訂閱關注。在這裡我會從 Web 前端零基礎開始,一步步學習 Web 相關的知識點,期間也會分享一些好玩的專案。現在就讓我們一起進入 Web 前端學習的冒險之旅吧! 一、CSS可見性

開始 Web CSS選擇

大家好,這裡是「 Daotin的夢囈 」從零開始學 Web 系列教程。此文首發於「 Daotin的夢囈 」公眾號,歡迎大家訂閱關注。在這裡我會從 Web 前端零基礎開始,一步步學習 Web 相關的知識點,期間也會分享一些好玩的專案。現在就讓我們一起進入 W

開始 Web CSS連結偽類背景行高盒子模型浮動

大家好,這裡是「 Daotin的夢囈 」從零開始學 Web 系列教程。此文首發於「 Daotin的夢囈 」公眾號,歡迎大家訂閱關注。在這裡我會從 Web 前端零基礎開始,一步步學習 Web 相關的知識點,期間也會分享一些好玩的專案。現在就讓我們一起進入 Web 前端學習的冒險之旅吧! 一、連結偽類 a:

開始 Web CSSCSS初始化定位overflow標籤規範

大家好,這裡是「 Daotin的夢囈 」從零開始學 Web 系列教程。此文首發於「 Daotin的夢囈 」公眾號,歡迎大家訂閱關注。在這裡我會從 Web 前端零基礎開始,一步步學習 Web 相關的知識點,期間也會分享一些好玩的專案。現在就讓我們一起進入 Web 前端學習的冒險之旅吧! 一、CSS初始化

開始 Web CSS文字標籤特性

大家好,這裡是「 Daotin的夢囈 」從零開始學 Web 系列教程。此文首發於「 Daotin的夢囈 」公眾號,歡迎大家訂閱關注。在這裡我會從 Web 前端零基礎開始,一步步學習 Web 相關的知識點,期間也會分享一些好玩的專案。現在就讓我們一起進入 Web 前端學習的冒險之旅吧! 一、文字元素 1、

開始 Web Ajax同步異步請求,數據格式

遊記 document 空閑 name center 20px 實現 resp 也會 大家好,這裏是「 從零開始學 Web 系列教程 」,並在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公眾號:Web前端之

開始 Web CSS3transform

transform transform 字面上就是變形,改變的意思。在CSS3中transform主要包括以下幾種:移動 translate,縮放scale,旋轉rotate,翻轉skew,改變旋轉軸心等。 1、元素的移動:translate 作用:使用transform實現元素的移動 語法: /*使用t

開始 Web Ajax同步非同步請求,資料格式

一、同步請求與非同步請求 同步請求:在使用者進行請求傳送之後,瀏覽器會一直等待伺服器的資料返回,如果網路延遲比較高,瀏覽器就一直卡在當前介面,直到伺服器返回資料才可進行其他操作。 非同步請求:在使用者進行請求傳送之後,瀏覽器可以自由操作頁面中其他的元素,當伺服器放回資料的時候,才觸發相應事件,對返回的資料

開始 Web DOM元素的建立

大家好,這裡是「 從零開始學 Web 系列教程 」,並在下列地址同步更新...... +------------------------------------------------------------ github:https://github.com/Daotin/Web 微信公眾號:Web前端之

開始 Web jQuery操作元素其他屬性,為元素繫結事件

一、操作元素的寬和高 1、方法一 元素.css("width"); 元素.css("height"); 最後得到的是字串型別的,比如 200px。 如果我們在設定為原來寬高2倍的時候,就要先把獲取的寬高轉換成數字型別,再乘以2,這樣操作比較麻煩,有沒有簡單的方法呢? 2、方法二 元素.width(屬性

開始 Web JavaScript面向物件

大家好,這裡是「 Daotin的夢囈 」從零開始學 Web 系列教程。此文首發於「 Daotin的夢囈 」公眾號,歡迎大家訂閱關注。在這裡我會從 Web 前端零基礎開始,一步步學習 Web 相關的知識點,期間也會分享一些好玩的專案。現在就讓我們一起進入 Web 前端學習的冒險之旅吧! 一、面向物件 1、

開始 Web ES6ES6基礎語法三

一、Generator Generator 函式是 ES6 提供的一種非同步程式設計解決方案。 Generator 函式有多種理解角度。語法上,首先可以把它理解成,Generator 函式是一個狀態機,封裝了多個內部狀態。 執行 Generator 函式會返回一個遍歷器物件,也就是說,Generator

開始 Web DOMDOM的概念,對標簽操作

關註 1.5 pan 什麽 tin p標簽 nod text == 大家好,這裏是「 Daotin的夢囈 」從零開始學 Web 系列教程。此文首發於「 Daotin的夢囈 」公眾號,歡迎大家訂閱關註。在這裏我會從 Web 前端零基礎開始,一步步學習 Web 相關的知識點,

開始 Web DOM節點

def clas scrip while p標簽 設置 ner 操作 text 大家好,這裏是「 Daotin的夢囈 」從零開始學 Web 系列教程。此文首發於「 Daotin的夢囈 」公眾號,歡迎大家訂閱關註。在這裏我會從 Web 前端零基礎開始,一步步學習 Web 相

開始 Web BOMoffset,scroll,變速動畫函數

樣式 清理 java mar dde sof mov har width 大家好,這裏是「 從零開始學 Web 系列教程 」,並在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公眾號:Web前端之巔 博客園:

開始 Web jQuery獲取和操作元素的屬性

eight images idt 隱藏 lis 屬性 ner master lin 大家好,這裏是「 從零開始學 Web 系列教程 」,並在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公眾號:Web前端之巔

開始 Web jQuery為元素綁定多個相同事件,解綁事件

png 好用 添加 方式 執行 存在 區別 也會 地址 大家好,這裏是「 從零開始學 Web 系列教程 」,並在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公眾號:Web前端之巔 博客園:http://ww

開始 Web jQuery事件冒泡,事件參數對象,鏈式編程原理

eval uri turn 定位 return 也會 否則 ont sele 大家好,這裏是「 從零開始學 Web 系列教程 」,並在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公眾號:Web前端之巔 博客

開始 Web AjaxAjax 概述,快速上手

lan 技術分享 php 概述 由於 val asc logs 更新 大家好,這裏是「 從零開始學 Web 系列教程 」,並在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公眾號:Web前端之巔 博客園:ht

開始 Web AjaxjQuery中的Ajax

var 技術分享 else parse cnblogs 我會 clas alt jquer 大家好,這裏是「 從零開始學 Web 系列教程 」,並在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公眾號:Web