首頁 > web前端 > css教學 > 深入淺析了解CSS中定位佈局的細節

深入淺析了解CSS中定位佈局的細節

WBOY
發布: 2021-12-22 18:32:08
原創
1774 人瀏覽過

這篇文章為大家帶來了css定位佈局的相關知識,下面我們就來看一下什麼是相對定位、絕對定位以及固定定位不同的元素性質與用途等知識,希望對大家有幫助。

深入淺析了解CSS中定位佈局的細節

1. 相對定位

1.1) 什麼是相對定位

相對定位:盒子可以依照自己原來的位置進行位置調整(透過位置描述詞實現)。

位置描述:
left: 向右移動;right 向左移動;top 向下移動;bottom 向上移動
(當裡面值為負數的時候,相反方向移動)

舉例:
原來:

<!DOCTYPE html><html lang="en"><head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>相对定位</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }

        p {
            width: 500px;
            height: 500px;
            border: 1px solid #000;
            margin: 50px auto;
        }

        p {
            width: 100px;
            height: 100px;
            background-color: lightblue;
            position: relative;
            top: 50px;
            left: 50px;
        }
    </style></head><body>
    <p>
    	<p></p>
    </p></body></html>
登入後複製

深入淺析了解CSS中定位佈局的細節<br/>將p 設定成相對定位:

p {
    width: 100px;
    height: 100px;
    background-color: lightblue;
    position: relative;
    top: 50px;
    left: 50px;}
登入後複製

深入淺析了解CSS中定位佈局的細節

1.2)相對定位的性質與用途

性質

  • 相對定位的元素,本質上仍在原來的位置,只不過在新的地方渲染出現,不會對頁面其它元素產生影響。

用途

  • 用來微調元素位置
  • 相對定位的盒子可以用來做絕對定位的參考盒子

舉個例子:

<!DOCTYPE html><html lang="en"><head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>相对定位</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }

        nav {
            width: 780px;
            height: 50px;
            margin: 40px auto;
        }

        nav ul {
            list-style: none;
        }

        nav ul li {
            float: left;
            width: 156px;
            height: 50px;
            line-height: 50px;
            text-align: center;
        }

        nav ul li a {
            display: block;
            width: 156px;
            height: 50px;
            background-color: lightcyan;
            color: #000;
            text-decoration: none;
        }

        nav ul li a:hover {
            border-top: 3px solid red;
        }
    </style></head><body>
    <nav>
        <ul>
            <li>
                <a href="#">导航一</a>
            </li>
            <li>
                <a href="#">导航二</a>
            </li>
            <li>
                <a href="#">导航三</a>
            </li>
            <li>
                <a href="#">导航四</a>
            </li>
            <li>
                <a href="#">导航五</a>
            </li>
        </ul>
    </nav></body></html>
登入後複製

這個時候效果是這樣:<br/>深入淺析了解CSS中定位佈局的細節<br/> 會發現滑鼠懸浮在上面的時候,導航那塊區域都會下沉<br/> 我們為它設定了相對定位並微調之後:

nav ul li a:hover {
    border-top: 3px solid red;
    position: relative;
    top: -3px;}
登入後複製

深入淺析了解CSS中定位佈局的細節<br/> 這樣就可以解決剛剛的問題了


2. 絕對定位

2.1) 什麼是絕對定位

絕對定位:盒子以座標進行位置描述,擁有自己絕對位置。

絕對定位的參考盒子:<br/> 絕對定位的盒子會以自己的祖先元素中,離自己最近的擁有定位屬性的盒子,當做基準點。

這個盒子通常是相對定位的,所以也被稱為 「子絕父相」。

位置描述:<br/> left:到左邊的距離;right:到右邊的距離;top:到上邊的距離;bottom:到下邊的距離

舉例:

<!DOCTYPE html><html lang="en"><head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>绝对定位</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }

        .box {
            position: absolute;
            width: 500px;
            height: 300px;
            left: 200px;
            top: 100px;
            background-color: antiquewhite;
        }
    </style></head><body>
    <p class="box">
    </p></body></html>
登入後複製

2.2)絕對定位的性質與用途

絕對定位的盒子垂直居中:

.box {
	position: absolute;
	top: 50%;
	margin-top: -自己高度一半;}
登入後複製

絕對定位的盒子水平居中:

.box {
	position: absolute;
	left: 50%;
	margin-left: -自己宽度一半;}
登入後複製
  • 堆疊順序z-index 屬性
##設定絕對定位元素的壓疊順序.

是一個沒有單位的正整數,數值大的能夠壓住數值小的(即數值大的顯示在上層)<br/>

#舉例:

<!DOCTYPE html><html lang="en"><head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>绝对定位</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }

        .box1 {
            width: 300px;
            height: 300px;
            position: absolute;
            left: 100px;
            top: 100px;
            background-color: antiquewhite;
        }

        .box2 {
            width: 300px;
            height: 300px;
            position: absolute;
            left: 200px;
            top: 200px;
            background-color: lightblue;
        }
    </style></head><body>
    <p class="box1"></p>
    <p class="box2"></p></body></html>
登入後複製

此時效果如下:

<br/>

<br/>
登入後複製

這時候我們想要讓box1顯示在上層,就設定一個z-index 屬性。

<br/>

.box1 {
    width: 300px;
    height: 300px;
    position: absolute;
    left: 100px;
    top: 100px;
    background-color: antiquewhite;
    z-index: 100;}.box2 {
    width: 300px;
    height: 300px;
    position: absolute;
    left: 200px;
    top: 200px;
    background-color: lightblue;
    z-index: 1;}
登入後複製

看看效果:

<br/>深入淺析了解CSS中定位佈局的細節

    用途
絕對定位用來“壓蓋”,“遮罩」的效果

可以結合CSS 精靈使用<br/> 可以結合JS 實現一些動畫<br/>

3. 固定定位

3.1) 什麼是固定定位

固定定位:不管頁面如何滾動,它永遠以頁面為參考點,固定在那裡。

位置描述: left:到左邊的距離;right:到右邊的距離;top:到上邊的距離;bottom:到下邊的距離<br/>

.box {
	position: fixed;
	top: 100px;
	left: 100px;}
登入後複製

3.2)固定定位的性質與用途

可以用來實現一些元素要一直浮現在當前視窗前,例如瀏覽一個頁面時的返回頂部按鈕,會一直出現在當前頁面的某個位置

舉例:

<!DOCTYPE html><html lang="en"><head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>固定定位</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }

        .box {
            position: fixed;
            bottom: 20px;
            right: 20px;
            width: 40px;
            height: 40px;
            
            text-align: center;
            line-height: 40px;
            border-radius: 50%;
            background-color: rgba(78, 209, 226, 0.5);
            
            cursor: pointer;
            font-size: 24px;
        }
    </style></head><body>
    <a class="box">^</a>
    <p>
        <img src="https://dummyimage.com/600x400/00bcd4/fff" alt="">
    </p>
    <p>
        <img src="https://dummyimage.com/600x400/00bcd4/fff" alt="">
    </p>
    <p>
        <img src="https://dummyimage.com/600x400/00bcd4/fff" alt="">
    </p></body></html>
登入後複製
效果如下:

當頁面到下方時,右下角回到頂部的按鈕位置不變。

深入淺析了解CSS中定位佈局的細節

大家有興趣的話,可以繼續訪問:

css影片教學

以上是深入淺析了解CSS中定位佈局的細節的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
css
來源:csdn.net
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板