您好,請問幾個問題。 1.為什麼我使用position:relative,網頁會出現很大的空白,我該如何解決。 2.使用絕對位置,我該如何讓我的網頁隨著比例縮放。

問題1 :

問題2:

這是網頁全開的時候

HTML:

<!DOCTYPE html>
<html>
    <head>
        <meta charset = "UTF-8">
        <title>佳加安全帽</title>
        <link rel = "stylesheet" href = "style.css">
    </head>
    <body class = "page">
        <div class = "navbar">
            <div class="container">
                <div class = "logo">
                <a  href = "#"><img src = "jiajia.jpg"/></a>
                </div>
                <div class="menu">
                    <ul class="choose">
                        <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>
                        <li><a href = "">配件</a></li>
                        <li><a href = "">包包</a></li>
                    </ul>
                </div>
                <div class="user">
                    <ul>
                        <li><a href = "">Log in 登入</a></li>
                        <li>|</li>
                        <li><a href = "">Sign up 註冊</a></li>
                    </ul>
                </div>
            </div>
        </div>
        <div class="background">
            <div class="content">
            <h1>在危險的世界中,給你多一份安全</h1>
            </br>
            </br>
            <p>留下您的email,獲得新商品及最新優惠資訊</p>
            </br>
            <input type= "email" name = "email" value = "Your email">
            </br>
            <input class="submit" type = "submit" name= "submit" value = "訂閱">
            </div>
        </div>
    </body>
</html>

CSS: ``` *{ margin: 0px; padding: 0px; list-style-type: none; text-decoration: none; }

.navbar{ background-color: #272727; height: 50px; width: 100%; }

.logo img{ height: 50px; }

.menu{ position: relative; top: -50px; line-height: 45px; left: 500px; }

.menu li{ float: left; }

.menu a{ color: #D9B300; display: block; padding: 0 10px; }

.menu a:hover{ background-color: #D9B300; color: #272727; }

.user{ position: relative; top: -50px; left: 800px; line-height: 45px; }

.user li{ float: left; color: #D9B300; }

.user a{ color: #D9B300; display: block; padding: 0 10px; }

.user a:hover{ background-color: #D9B300; color: #272727; }

h1{ color: white; }

p{ color: white; }

.background{ background-image: url("motor.jpg"); background-size: cover; background-repeat: no-repeat; height: 660px; text-align: center; }

.content input{ width: 400px; height: 40px; }

.content h1{ font-size: 40px; }

.content p{ font-size: 20px; }

.content{ position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); }

.submit{ font-weight: bold; font-size: 20px; background-color: #D9B300; color: #272727; border-radius: 10px; border: 0px; }

.submit:hover{ background-color: #272727; color: #D9B300; }

按讚的人:

共有 5 則留言

為了讓「登入、註冊」往右邊靠,你這樣寫 css

.user{
    position: relative;
    top: -50px;
    left: 800px;
    line-height: 45px;
}

這種寫法,在螢幕寬度少於 800px 時,一定會破版,光是這邊的寫法就要先改

按讚的人:

在研究排版的時候,應該要一小塊一小塊研究

舉例來說,把這塊整個刪掉

<div class="user">
    <ul>
        <li><a href = "">Log in 登入</a></li>
        <li>|</li>
        <li><a href = "">Sign up 註冊</a></li>
    </ul>
</div>

就會發現,其實版面算整齊,並沒有太大問題

所以要從這一塊的寫法,開始研究、改寫

按讚的人:

謝謝站長,我弄好了! 後來把大容器用relative,小容器用absolute,有改善問題,站長有更好的建議嗎?

往 Flexbox 這方向研究看看

現在實務上,很多排版,都通通使用 Flexbox 來完成

按讚的人: