簡體   English   中英

為什么不應用此CSS規則?

[英]Why is this CSS rule not applied?

我沒有網頁設計師的經驗,但是為了努力學習CSS,我正在為自己的頁面制作樣式表。 我知道我現在做的方式可能很糟糕,不是推薦的方式,但是請幫助我了解為什么這種方式不起作用。

我有這個表格:

<form action="/register" method="POST" id="registration_form">
    <p>
        <label for="username">Username</label>
        <input type="text" id="username" name="username"/>
    </p>
    <p>
        <label for="password">Password</label>
        <input type="password" id="password" name="password"/>
    </p>
</form>

在包含我自己的樣式表之前,我已經包含了Eric Meyer的CSS reset ,並且我的CSS中包含以下規則:

#registration_form label {
    width: 100px;
}

我也試着說:

label {
   width:100px;
}

我嘗試將值更改為大於100px,但仍然無法應用。 如果有幫助,我有一個布局,其中包含以下內容:

<body>
   <div id="navigation">
     ...
   </div>
   <div id="pagebox">
     {% block body %}{% endblock %}
   </div>
</body>

這是一個jinja2模板,body的內容在渲染時是通過其他視圖添加的。 以下是這些ID的樣式:

#navigation {
    text-align:center;
}

#navigation ul li {
    display:inline;
    margin-left:50px;
}

#pagebox {
    margin-left:50px;
    margin-right:50px;
    height:600px;
    background-color: #20f000;
}

為什么沒有應用我的標簽樣式?

我相信<label>默認情況下具有display:inline ,因此widthheight不會影響它。 嘗試向其添加display: inline-block

補充:正如成員Geoff Adams在評論中指出的那樣, display: inline-block存在一些瀏覽器兼容性問題display: inline-block 在這種特定情況下,它應該可以工作,但是請參見此處以獲取更多信息。

label元素是一個內聯元素,因此width樣式不適用於它。

您可以使labelinput元素浮在p元素內。 overflow應用於p元素使其可以用作浮動元素的容器:

#registration_form p {
  overflow: hidden;
}
#registration_form p label {
  float: left;
  width: 100px;
}
#registration_form p input {
  float: left;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM