Html 这个额外的空间是从哪里来的?
正如您在这里和下图中所看到的,我的菜单项与“logo”和“social”并不完全一致。此外,菜单类别(菜单I、菜单2等)和子项之间存在巨大差距。当我查看我的代码时,我没有看到额外的填充或任何类似的东西会导致这种类型的问题。有什么想法吗?非常感谢Html 这个额外的空间是从哪里来的?,html,css,css-float,css-position,Html,Css,Css Float,Css Position,正如您在这里和下图中所看到的,我的菜单项与“logo”和“social”并不完全一致。此外,菜单类别(菜单I、菜单2等)和子项之间存在巨大差距。当我查看我的代码时,我没有看到额外的填充或任何类似的东西会导致这种类型的问题。有什么想法吗?非常感谢 Html, body { margin: 0; padding: 0; background: #fff; font-family: 'Open Sans', sans-serif; } #logo { pos
Html, body {
margin: 0;
padding: 0;
background: #fff;
font-family: 'Open Sans', sans-serif;
}
#logo {
position: absolute;
top: 35px;
left: 20px;
color: #000;
font-size: 20px;
}
/* mainmenu */
#mainmenu {
float:right;
margin-top: 35px;
padding-bottom: 10px;
overflow: hidden;
}
#mainmenu ul {
float: right;
margin: 0;
color: #000;
list-style: none;
}
#mainmenu ul li {
display: inline-block;
float: left;
width: 140px;
line-height: 20px;
}
#mainmenu>ul>li {
margin-left: 20px;
}
#mainmenu ul li a {
display: block;
text-decoration: none;
font-weight:600;
font-size: 12px;
}
#mainmenu ul li a, #mainmenu ul ul:hover li a {
color: #333;
-webkit-transition-timing-function: ease-out, ease-in, linear, ease-in-out;
-moz-transition-timing-function: ease-out, ease-in, linear, ease-in-out;
-ms-transition-timing-function: ease-out, ease-in, linear, ease-in-out;
-o-transition-timing-function: ease-out, ease-in, linear, ease-in-out;
transition-timing-function: ease-out, ease-in, linear, ease-in-out;
-webkit-transition-duration: .4s, .4s, .4s, .4s;
-moz-transition-duration: .4s, .4s, .4s, .4s;
-ms-transition-duration: .4s, .4s, .4s, .4s;
-o-transition-duration: .4s, .4s, .4s, .4s;
transition-duration: .4s, .4s, .4s, .4s;
-webkit-transition-property: all, -webkit-transform;
-moz-transition-property: all, -moz-transform;
-ms-transition-property: all, -ms-transform;
-o-transition-property: all, -o-transform;
transition-property: all, transform;
}
#mainmenu ul ul li a:hover, #mainmenu ul ul li.current-menu-item a {
color: #005EBC;
-webkit-transition-timing-function: ease-out, ease-in, linear, ease-in-out;
-moz-transition-timing-function: ease-out, ease-in, linear, ease-in-out;
-ms-transition-timing-function: ease-out, ease-in, linear, ease-in-out;
-o-transition-timing-function: ease-out, ease-in, linear, ease-in-out;
transition-timing-function: ease-out, ease-in, linear, ease-in-out;
-webkit-transition-duration: .4s, .4s, .4s, .4s;
-moz-transition-duration: .4s, .4s, .4s, .4s;
-ms-transition-duration: .4s, .4s, .4s, .4s;
-o-transition-duration: .4s, .4s, .4s, .4s;
transition-duration: .4s, .4s, .4s, .4s;
-webkit-transition-property: all, -webkit-transform;
-moz-transition-property: all, -moz-transform;
-ms-transition-property: all, -ms-transform;
-o-transition-property: all, -o-transform;
transition-property: all, transform;
}
#social {
position: absolute;
float:right;
right: 10px;
Color: blue;
margin-top: 35px;
}
HTML
Logo
-
菜单一
-
菜单2
-
菜单3
-
菜单4
社会的
您的h5
元素上有边距。要修复此问题,只需将其放在CSS中:
h5 {
margin:0;
}
首先,您应该使用CSS重置,因为如果您不重置元素,浏览器会将一些默认样式应用于您的元素,而您不需要这些样式,是吗?你可以用谷歌搜索出来,会得到很多,如果你想简单地保留它,但是你想重置它,你可以使用下面的代码块并将它粘贴到你的CSS中
* {
margin: 0;
padding: 0;
}
(减少间距)
似乎你应该学习定位,你正在使用position:absolute代码>元素,不在元素内部包裹位置:相对代码>容器,这样,您的位置:绝对代码>元素将在野外流动。另外,我认为您不想使用absolute
,在这里使用float
是合适的
看看定位有多重要
(锯位置:相对;
在那里?)
每个菜单之间的水平间距是由于您使用的是显式width
此外,如果使用浮点
,则不需要显示:内联块代码>
我建议您学习和同样在JSFIDLE上,您可以使用提供的功能重置默认值
要访问它,请查看左侧窗格,单击Fiddle Options
并勾选Normalized CSS
,然后点击Run
查看更新的代码。您应该阅读CSS框模型。除此之外,您使用的是position:absolute:这实际上会在调整屏幕大小时产生问题。正确使用浮标对现场布局很重要。我刚刚为您解决了一些问题,是重新修改的菜单
希望这有帮助
下面是我重写的CSS的一小部分
#social {
border:1px solid green;
float:left;
width:120px;
Color: blue;
}
#mainmenu {
float:left;
border:1px solid red;
padding-bottom: 10px;
overflow: hidden;
}
#logo {
float:left;
color: #000;
font-size: 20px;
border:1px solid black;
width:150px;
}
您看过DOM检查工具了吗?您好-我该怎么做?TKST取决于哪个浏览器,但大多数浏览器都内置了DOM检查器工具。谢谢。从其他人的回答中了解到,与我所做的相比,使用“浮动”是一种更干净的方式。问题:使用您建议的代码,3个div彼此左对齐。然而,我希望logo DIV与屏幕左侧对齐,main menu+social DIV与右侧对齐。我试着在主菜单和社交网站上写“float:right”,但没用。有什么想法吗?很多感谢我试图将我的社交DIV包装在我的主菜单DIV中,并在#social的CSS代码中添加了“position:absolute;”。它奏效了,但不确定这是否是最好的方法。它现在位于菜单的右侧。关于您的第一条评论,这不是一个有效且推荐的方法。您还需要对标记中的社交和主菜单div重新排序。这就像是从右到左书写你的英语。
#social {
border:1px solid green;
float:left;
width:120px;
Color: blue;
}
#mainmenu {
float:left;
border:1px solid red;
padding-bottom: 10px;
overflow: hidden;
}
#logo {
float:left;
color: #000;
font-size: 20px;
border:1px solid black;
width:150px;
}