【问题标题】:My css doesn't work well in my main html page我的 css 在我的主 html 页面中无法正常工作
【发布时间】:2015-06-29 21:32:28
【问题描述】:

我想更改我的主 HTML 页面。我希望登录部分位于右侧,段落位于中间,标题位于顶部和中间。我试图更改 CSS 中的代码,但没有。

现在的情况:

我想成为什么样的人:

我当前的网站代码:

function resetForm() {
  // clearing selects
  var selects = document.getElementsByTagName('select');
  for (var i = 0; i < selects.length; i++)
    selects[i].selectedIndex = 0;

  return false;
}
window.load(resetForm());
body {
  background-color: #ffffff;
  margin: 0;
  padding: 200px;
}
h3 {
  text-align: center;
  color: #ff9900;
  padding-bottom: 50px;
}
div.container#login {
  float: right;
  clear: both;
  padding: 20px 20px 20px;
  width: 310px;
  margin: 0 auto;
  border-radius: 3px;
}
div.container #div.content_right #div.login #inputfield {
  font-size: 20px !important;
  border-radius: 2px;
  float: right;
}
div.login#input[type="password"] {
  font-size: 20px !important;
  border-radius: 2px;
}
input[type="submit"] {
  font-size: 18px !important;
  font-family: Arial, sans-serif;
  color: #ffffff;
  background-color: #ff9900;
  border: solid;
  border-radius: 25px;
}
div.login#input[type="reset"] {
  font-size: 18px !important;
  font-family: Arial, sans-serif;
  color: #ffffff;
  background-color: #ff9900;
  border: solid;
  border-radius: 25px;
}
#footer {
  clear: both;
  margin-top: 20px;
  border-top: 1px solid black;
  padding: 20px 0px;
  padding-bottom: 20px;
  font-size: 70%;
  background-color: black;
  color: #ff9933;
  text-align: center;
  text-decoration: none;
  bottom: 40px;
}
<div id="container">

  <div id="header"></div>statistics</div>
<!--End of Header-->

<!--Pragraph in the center-->
<div id="p">
  <p>
    Some text
  </p>
</div>
<!--End of Pragraph-->

<div id="content">
  <div id="content_right">
    <div id="login">
      <h3>Login</h3>
      <form action="login.php" method="POST">
        <label>Username:</label>
        <br/>
        <input class="inputfield" type="text" name="username" size="30" />
        <br />
        <br/>
        <label>Password:</label>
        <br/>
        <input class="inputfield" type="password" name="password" size="30" />
        <br />
        <br/>
        <input type="submit" value="Login" name="submit" />
        <input type="reset" name="reset" value="Clear" />
      </form>
      <!--End of Login-->
    </div>
    <!--End of content right-->
  </div>
  <!--End of content-->
</div>


</div>
<!--End of Container-->
<div id="footer">
  footer
</div>
<!--End of Footer-->

【问题讨论】:

  • 你没有关闭你的&lt;div id="header"&gt;

标签: html css main


【解决方案1】:

您需要研究display CSS 属性,这将大大帮助您达到您想要的效果。

http://learnlayout.com/display.htmlhttps://css-tricks.com/almanac/properties/d/display/

附言

请注意,OP 已被编辑,因此不再显示页面设置为 HTML5

在您拥有的 HTML5 中,字符编码的显示方式不同:

&lt;meta http-equiv="content-type" content="text/html; charset=UTF-8"&gt;

&lt;meta charset="UTF-8"&gt;

附言

正如 Jamie Barker 正确指出的那样,您的 &lt;div id="header"&gt; 没有关闭。这将在以后引起问题。只需在标题元素下方添加&lt;/div&gt;

附言

最后,你的 CSS:

div.container#login {
  float: right;
  clear: both;
  padding: 20px 20px 20px;
  width: 310px;
  margin: 0 auto;
  border-radius: 3px;
}
div.container #div.content_right #div.login #inputfield {
  font-size: 20px !important;
  border-radius: 2px;
  float: right;
}

这些都是使用句点(点).# 符号引用的。但是div.container 表示 “包含容器类的 div” 但事实并非如此,因为“容器”标识符实际上是 id 而不是 class 所以你需要调整所有的 CSS像这样引用id 而不是class

#this is an id identifier in CSS

.this is a class identifier in CSS

您也不需要引用 div 标签本身,因此将引用的 CSS 替换为:

#container#login {
  float: right;
  clear: both;
  padding: 20px 20px 20px;
  width: 310px;
  margin: 0 auto;
  border-radius: 3px;
}
#container #div.content_right #div.login #inputfield {
  font-size: 20px !important;
  border-radius: 2px;
  float: right;
}

【讨论】:

  • 我要删除 'div.login#input[type="password"]' 这个代码吗?标题中的
    是错字
  • 不,你正确地重命名它:它变成:#login input[type=password](你能明白为什么吗?登录ID区域内的输入类型密码)
  • @mapr18 再次查看您的代码,更容易将密码字段引用为:.inputfield[type=password] 使用对类的调用而不是任何 id 。
  • 我也想让标签向左移动一点,怎么办?
  • 更改其左侧填充和/或边距值。
  • 【解决方案2】:

    你有什么理由不使用绝对定位而不是浮动?

    将所有 html 放在容器 div 中并应用以下 css:

    #container {
        position:relative;
        left: 0;
        top: 0;
        margin: 0 auto;
    }
    

    然后,您在 div 中的所有 html 元素都使用 position: absolute 和 left 和 top 属性来根据需要定位它们。如果你需要给容器一个固定的高度和/或宽度。

    【讨论】:

    • 肯定给“容器一个固定的高度和/或宽度”是不使用绝对定位的好理由吗?在只有 320 像素宽的手机屏幕与 1600 像素宽的笔记本电脑屏幕上怎么样?我认为绝对定位并不是进入可以查看网页的设备范围的好方法......
    • 同意马丁的观点。除非您真的知道自己在做什么,否则相对/绝对定位会引起很大的麻烦。真的应该只在“需要必须”的情况下使用。
    • 如果需要,我确实说过固定高度/宽度。此外,如果他希望这个网站完全响应,那完全是另一个球场,我同意最好避免使用带有@media 查询的绝对定位,但在这种情况下,对于一个简单的登录页面,按照他想要的方式定位应该就足够了: )
    • 当然,我们应该向人们展示如何正确地做事,而不是如何“做得足够好以克服他们当前的问题,然后解决他们的新问题线”?只是说。你还不如说为了方便得到他想要的东西,他把整个页面变成了一个表格布局......
    • 完全不相关的评论,解决方案是解决他所描述的问题,而不是基于对他可能想要做的进一步的预测。
    猜你喜欢
    • 2017-11-28
    • 2017-02-03
    • 1970-01-01
    • 1970-01-01
    • 2018-11-28
    • 2021-07-11
    • 1970-01-01
    • 2013-11-02
    • 1970-01-01
    相关资源
    最近更新 更多