在CSS中使用负值是否可以接受?

时间:2011-05-26 05:50:21

标签: html css

我是编码和CSS的新手,这是我有史以来第一个要求我使用负值的页面。我记得前一段时间在某处阅读,最好不要使用负值。我不确定为什么因为我似乎无法找到那篇文章。

我将非常感谢您在下面的代码中使用负值的反馈。我已经避免使用任何框架等,这样我就可以掌握CSS编码的概念。

此外,我使用了内部样式表,以便我可以快速修改代码,而不是在两个不同的文件之间交换。在开发真实世界页面时,我肯定会考虑使用外部样式表。其次,这是我第一次使用导入重置样式表。

CODE

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <meta http-equiv="Content-Language" content="en-us" />

    <meta name="keywords" content="" />
    <meta name="description" content="" />
    <meta name="author" content="" />

    <title>Sample</title>


    <link rel="icon" type="image/png" href="" />

    <link rel="stylesheet" type="text/css" href="" />

    <style type="text/css" media="all">

    @import url('http://meyerweb.com/eric/tools/css/reset/reset.css');

    body {

        font-family: Georgia;
        font-size: 1em;

    }

    #wrapper {

        /* background-color: #FAEBD7; */
        width: 960px;
        margin: 0px auto;

    }

    #innerwrapper {

        /* background-color: #CDC0B0; */
        overflow: auto;

    }

    #header {

        /* background-color: #8B8378; */

    }

    #logo {

        background-color: #000000;
        float: left;
        width: 100px;
        height: 70px;
        color: #ffffff;
        text-align: center;
        padding-top: 30px;

    }

    #topnav {

        /* background-color: #8B8970; */
        float: right;
        margin-top: 50px;
        width: 300px;
        text-align: right;


    }

    #status {

        /* background-color: #808080; */
        width: 100px;
        position: relative;
        top: -80px;
        left: 800px;
        text-align: center;
    }

    #topnav ul {

        word-spacing: 5px;

    }

    #topnav ul li {

        display: inline;

    }

    #separator {

        border-bottom: 1px dashed gray;
        margin-top: 20px;

    }

    #content {

        /* background-color: #68838B; */
        overflow: hidden;
        margin-top: 60px;

    }

    #innercontent {

        /* background-color: #778899; */
        float: left;
        width: 600px;

    }

    #rightcol {

        /* background-color: #CDCDB4; */
        float: right;
        width: 300px;

    }

    #rightcol p + p {

        margin-top: 1em;

    }

    #footer {

        /* background-color: #CDB7B5; */
        margin-top: 20px;

    }

    </style>
</head>

<body>
    <div id="wrapper">
        <div id="innerwrapper">
            <div id="header">

                <div id="logo">logo</div>

                <div id="topnav">
                    <ul>
                        <li>about</li>
                        <li>browse</li>
                        <li>join</li>

                        <li>faq</li>
                        <li>contact</li>
                    </ul>
                </div>

                <div id="status">login</div>

            </div>
        </div>

        <div id="separator"></div>


        <div id="content">
            <div id="innercontent">
                Lorem ipsum dolor sit amet, at elementum neque vestibulum sollicitudin semper neque, vitae metus. Nibh ligula mi. Faucibus rutrum elit turpis, nec congue quam ipsum felis neque et, wisi amet, architecto eros congue. Maecenas suspendisse tellus arcu eget pharetra, rhoncus aenean sapien morbi nec arcu, vivamus aliquet lorem amet at, vestibulum purus sociis varius id. Imperdiet id magnis turpis beatae aliquet, vestibulum dolor nec eget eu cras lobortis, vel rerum, risus sed et, libero et non eros commodo. Taciti eu leo sollicitudin malesuada, nibh duis amet aenean, odio aptent ultrices. Tristique morbi nunc ullamcorper ut curabitur. Et a in ut sem varius, sem rutrum vehicula sem sed, at diam amet erat vel. Et sit in ante felis vitae sit.

                Quam eget sed elit natoque velit, enim mauris mauris urna, integer amet tellus illo ipsum, dolor fermentum cursus enim mollis tristique porttitor. Non dignissim. Sit ligula leo tincidunt, justo ut ut placerat quisque non, risus nonummy. Ultrices mauris congue aliquam aliquam felis, at placerat, amet vestibulum dictumst pellentesque iaculis risus. Sem sed impedit nullam ultrices lorem aliquam, nulla tellus consequatur in ornare magna. Viverra amet pede in in ornare eu, id arcu. Justo mus suspendisse praesent et, amet mattis convallis ullamcorper felis, fermentum nibh at ac, ullamcorper ipsum auctor et maecenas, aliquam molestiae in qui. Massa elit suspendisse penatibus molestie libero dolor, non leo vitae, sollicitudin a, platea tristique iaculis, tortor augue non est. Ante rutrum quis pellentesque lacinia convallis non, vestibulum nibh nunc luctus nibh a, in amet, iaculis dui ornare pede laoreet eu. Cursus integer vehicula quis, justo eget purus mattis donec vestibulum nunc, nunc vel eros lectus.
            </div>


            <div id="rightcol">
                <p>paragraph1</p>
                <p>paragraph2</p>
            </div>


        </div>

        <div id="footer">footer</div>

    </div>
</body>
</html>

编辑 - 根据wdm的建议更新了代码

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <meta http-equiv="Content-Language" content="en-us" />

    <meta name="keywords" content="" />
    <meta name="description" content="" />
    <meta name="author" content="" />

    <title>Sample</title>

    <link rel="icon" type="image/png" href="" />

    <link rel="stylesheet" type="text/css" href="" />

    <style type="text/css" media="all">

    @import url('http://meyerweb.com/eric/tools/css/reset/reset.css');

    body {

        font-family: Georgia;
        font-size: 1em;

    }

    #wrapper {

        /* background-color: #FAEBD7; */
        width: 960px;
        margin: 0px auto;

    }

    #innerwrapper {

        /* background-color: #CDC0B0; */
        overflow: auto;

    }

    #header {

        /* background-color: #8B8378; */

    }

    #logo {

        background-color: #000000;
        float: left;
        width: 100px;
        height: 70px;
        color: #ffffff;
        text-align: center;
        padding-top: 30px;

    }

    #status {

        /* background-color: #808080; */
        position: relative;
        top: -85px;
        left: 780px;
        width: 100px;
        text-align: center;

    }

    #topnav {

        /* background-color: #8B8970; */
        float: right;
        width: 300px;
        margin-top: -70px;
        text-align: right;


    }

    #topnav ul {

        word-spacing: 5px;

    }

    #topnav ul li {

        display: inline;

    }

    #separator {

        border-bottom: 1px dashed gray;
        margin-top: 20px;

    }

    #content {

        /* background-color: #68838B; */
        overflow: hidden;
        margin-top: 60px;

    }

    #innercontent {

        /* background-color: #778899; */
        float: left;
        width: 600px;

    }

    #rightcol {

        /* background-color: #CDCDB4; */
        float: right;
        width: 300px;

    }

    #rightcol p + p {

        margin-top: 1em;

    }

    #footer {

        /* background-color: #CDB7B5; */
        margin-top: 20px;

    }

    </style>
</head>

<body>
    <div id="wrapper">
        <div id="innerwrapper">
            <div id="header">
                <div id="logo">logo</div>

                <div id="status">Logged in</div>

                <div id="topnav">
                    <ul>
                        <li>about</li>
                        <li>browse</li>
                        <li>join</li>
                        <li>faq</li>
                        <li>contact</li>
                    </ul>
                </div>

            </div>
        </div>

        <div id="separator"></div>

        <div id="content">
            <div id="innercontent">
                Lorem ipsum dolor sit amet, at elementum neque vestibulum sollicitudin semper neque, vitae metus. Nibh ligula mi. Faucibus rutrum elit turpis, nec congue quam ipsum felis neque et, wisi amet, architecto eros congue. Maecenas suspendisse tellus arcu eget pharetra, rhoncus aenean sapien morbi nec arcu, vivamus aliquet lorem amet at, vestibulum purus sociis varius id. Imperdiet id magnis turpis beatae aliquet, vestibulum dolor nec eget eu cras lobortis, vel rerum, risus sed et, libero et non eros commodo. Taciti eu leo sollicitudin malesuada, nibh duis amet aenean, odio aptent ultrices. Tristique morbi nunc ullamcorper ut curabitur. Et a in ut sem varius, sem rutrum vehicula sem sed, at diam amet erat vel. Et sit in ante felis vitae sit.

                Quam eget sed elit natoque velit, enim mauris mauris urna, integer amet tellus illo ipsum, dolor fermentum cursus enim mollis tristique porttitor. Non dignissim. Sit ligula leo tincidunt, justo ut ut placerat quisque non, risus nonummy. Ultrices mauris congue aliquam aliquam felis, at placerat, amet vestibulum dictumst pellentesque iaculis risus. Sem sed impedit nullam ultrices lorem aliquam, nulla tellus consequatur in ornare magna. Viverra amet pede in in ornare eu, id arcu. Justo mus suspendisse praesent et, amet mattis convallis ullamcorper felis, fermentum nibh at ac, ullamcorper ipsum auctor et maecenas, aliquam molestiae in qui. Massa elit suspendisse penatibus molestie libero dolor, non leo vitae, sollicitudin a, platea tristique iaculis, tortor augue non est. Ante rutrum quis pellentesque lacinia convallis non, vestibulum nibh nunc luctus nibh a, in amet, iaculis dui ornare pede laoreet eu. Cursus integer vehicula quis, justo eget purus mattis donec vestibulum nunc, nunc vel eros lectus.
            </div>

            <div id="rightcol">
                <p>paragraph 1</p>
                <p>paragraph 2</p>
            </div>

        </div>

        <div id="footer">footer</div>
    </div>
</body>
</html>

5 个答案:

答案 0 :(得分:3)

正确使用时,负值可能非常强大。使用负值没有问题。

答案 1 :(得分:2)

让我在这里将我的意见合并到一个答案中。

首先:负值是完全可以接受的,但我会谨慎使用它们。它们在某些情况下绝对有用

HTML标记应遵循页面的可视流程。我不会以你原定的方式使用负边距。一个常见的用途是覆盖元素。例如:http://jsfiddle.net/wdm954/jwBzv

如何修复顶级菜单代码?我会将#statusUL包裹在#topnav这样的内容中......

<div id="topnav">
  <div id="status">Logged in</div>
    <ul>
      <li>about</li>
      <li>browse</li>
      <li>join</li>
      <li>faq</li>
      <li>contact</li>
    </ul>
</div>

然后沿着这些线使用CSS ......

#topnav {
    float: right;
}
#topnav #status {
    text-align: center;
    margin-bottom: 15px;
}
#topnav li {
    display: inline;
    margin-left: 15px;
}

以下是演示:http://jsfiddle.net/wdm954/RwEWN/3/

希望这有帮助!

答案 2 :(得分:0)

我会远离使用负边距,因为它们可能令人困惑且难以理解,但使用负值进行定位(就像你所做的那样)很常见且完全可以接受!

您不能使用负值填充。

答案 3 :(得分:0)

如果它能为您提供您正在寻找的结果,当然,负值没有问题。对他们来说并没有什么本质上的坏事。它们可以使定位更容易。

答案 4 :(得分:0)

CSS 中的大多数属性都可以接受负值,但 CSS 中的某些属性不接受负值,例如:Padding