Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 如何使用css将菜单栏居中。(我正在使用Microsoft Expression Web 4)_Html_Css - Fatal编程技术网

Html 如何使用css将菜单栏居中。(我正在使用Microsoft Expression Web 4)

Html 如何使用css将菜单栏居中。(我正在使用Microsoft Expression Web 4),html,css,Html,Css,我对html和css有点陌生。我的菜单栏居中有很大困难。有人能告诉我该拿哪个标签吗? 我试图在这里读更多的帖子,但我无法解决它,我做错了什么 这是我的密码: <!DOCTYPE html> <html> <head> <meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <title>Untitled 2</title> <style

我对html和css有点陌生。我的菜单栏居中有很大困难。有人能告诉我该拿哪个标签吗? 我试图在这里读更多的帖子,但我无法解决它,我做错了什么

这是我的密码:

<!DOCTYPE html>
<html>

<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">

<title>Untitled 2</title>
<style type="text/css">

body {
    background-color: #dfe3ee;
}

.wrapper {
    border: 1px solid;
    width: 75%;
    height: 90%;
    margin: 0 auto;
}

.header {
    border-bottom: 1px solid;
    padding:10px;
    text-align:center;
    font-size: 40px;
    font-family: "Gill Sans", "Gill Sans MT", Calibri, "Trebuchet MS", sans-serif;

}

#menu {
    margin:0 auto;
    display: inline-block;
    list-style:none;
    padding:0;
    border-top:1 solid #ccc;
    border-left:1 solid #ccc;
    border-bottom:1 solid #ccc;
}

#menu ul {
    margin: 0px;
    padding: 0px;
    list-style-type: none;      
}

#menu a {
    display: block;
    width: 8em;
    color:white;
    background-color: blue;
    text-decoration: none;
    text-align: center;
}

#menu a:hover {
    background-color: #6666AA;

}

#menu li {
    float: left;
    margin-right: 0.5em;
    font-family:"Bookman Old Style"
}

#menu a {
    text-decoration: none;
}

#menu ul ul {
    display:none;

}

#menu ul li: hover > ul {
    display:block;
}

#menu {
    display:inline-block;
}

</style>
</head>

<body>
<div class="wrapper" style="height: 558px">
<div class="header">
    Cotton
</div>
    <div id="menu">
        <ul style="width: 699px">
            <li><a href="index.html"><span style="font-family: Impact">Home</span></a></li>
            <li><a href="collections.html"><span style="font-family: Impact">Our Collections</span></a></li>
            <li><a href="about.html"><span style="font-family: Impact">About Us</span></a></li>
            <li><a href="contact.html"><span style="font-family: Impact">Contact Us</span></a></li>
        </ul>
</div>
    </div>
</body>

</html>

无标题2
身体{
背景色:#dfe3ee;
}
.包装纸{
边框:1px实心;
宽度:75%;
身高:90%;
保证金:0自动;
}
.标题{
边框底部:1px实心;
填充:10px;
文本对齐:居中;
字体大小:40px;
字体系列:“Gill Sans”,“Gill Sans MT”,Calibri,“投石机MS”,无衬线;
}
#菜单{
保证金:0自动;
显示:内联块;
列表样式:无;
填充:0;
边框顶部:1个实心#ccc;
左边框:1个实心#ccc;
边框底部:1个实心#ccc;
}
#菜单ul{
边际:0px;
填充:0px;
列表样式类型:无;
}
#菜单a{
显示:块;
宽度:8em;
颜色:白色;
背景颜色:蓝色;
文字装饰:无;
文本对齐:居中;
}
#菜单a:悬停{
背景色:#6666AA;
}
#菜单里{
浮动:左;
右边距:0.5em;
字体系列:“书商旧式”
}
#菜单a{
文字装饰:无;
}
#菜单{
显示:无;
}
#菜单ul li:悬停>ul{
显示:块;
}
#菜单{
显示:内联块;
}
棉
宽度:699px>

  • 去掉
    #菜单
    的内联宽度,也去掉(两次声明的)
    显示:内联块
    ,实际定义
    #菜单
    的宽度,以便
    边距:0自动
    工作。我重新计算了
    px
    中的宽度,因为在我看来,
    em
    在试图计算这些宽度时很痛苦

    注意:如果将包装宽度指定为75%,我的解决方案可能无法在较小的屏幕上运行,因为所有菜单项的总宽度都将大于包装宽度

    以下是我的想法:
    正文{
    背景色:#dfe3ee;
    }
    .包装纸{
    边框:1px实心#000;
    宽度:75%;
    身高:90%;
    保证金:0自动;
    }
    .标题{
    边框底部:1px实心;
    填充:10px;
    文本对齐:居中;
    字体大小:40px;
    字体系列:“Gill Sans”,“Gill Sans MT”,Calibri,“投石机MS”,无衬线;
    }
    #菜单{
    保证金:0自动;
    宽度:536px;
    高度:20px;
    列表样式:无;
    填充:0;
    边框顶部:1px实心#ccc;
    左边框:1px实心#ccc;
    边框底部:1px实心#ccc;
    }
    #菜单ul{
    边际:0px;
    填充:0px;
    列表样式类型:无;
    }
    #菜单a{
    显示:块;
    宽度:128px;
    颜色:白色;
    背景颜色:蓝色;
    文字装饰:无;
    文本对齐:居中;
    }
    #菜单a:悬停{
    背景色:#6666AA;
    }
    #菜单里{
    浮动:左;
    右边距:8px;
    字体系列:“书商旧式”
    }
    #菜单李:最后一个孩子{
    右边距:0
    }
    #菜单a{
    文字装饰:无;
    }
    #菜单{
    显示:无;
    }
    #菜单ul li:悬停>ul{
    显示:块;
    }

    进行以下更改

    编辑:

    #menu {
        margin-left:225px; /*changed*/
        display: inline-block;
        list-style:none;
        padding:0;
        border-top:1 solid #ccc;
        border-left:1 solid #ccc;
        border-bottom:1 solid #ccc;
    }
    
    #menu li:last-child{
        margin-right:0; /*not required*/
    }
    
    此外,还从
    ul
    中删除了
    width:699px


    这不是问题的原因,但菜单的
    边框
    属性需要在1之后使用单位,可能是px。CSS验证器是你的朋友:也许我遗漏了什么…但菜单栏根本没有居中显示…也许我误解了这个问题。也许你是,考虑到你的答案…:)啊,我知道怎么回事:我们的两种解决方案在很大程度上取决于屏幕宽度。在更大的屏幕上尝试这两种方法,您将看到我在说什么!我相信。。。我分别测试了你的解决方案。我就是不明白。(嗯,可能想把
    px
    放在
    边框-
    属性中的1之后。)@BobBrown更正了
    px
    ,谢谢!显然,我还没有检查所有内容……我仍然很难区分padding和marginI刚刚编辑了我的答案。设置边框时,内容中不排除边距,而内容中包含填充。希望你能理解其中的区别:)所以边距会移动内容的实际边框,而填充只会移动内容?对。这是一个直观的演示:顺便说一下,如果我的答案在某种程度上对你有所帮助,你可以通过投票我的答案来感谢我:)是的,它有@theScorpion。不幸的是,它说我需要15名代表投票。因此,一旦我得到它们,我将投票表决这两个答案,因为它们都对我有帮助。再次感谢你!