我正在构建一个简单的导航栏,在<ul>
内嵌套div
列表。
在this tutorial之后,我尝试在导航栏中实现一个简单的css下拉菜单。
我正在使用reset.css
和一个名为ionicons
的自定义图标字体,但是我已经构建了没有它们的剪辑并重新创建了问题。
出于某种原因,悬停时显示的下拉列表文本较大,文本大于字体(重叠)。我认为下拉列表只会从父元素继承字体样式,但显然情况并非如此。
我尝试手动设置,但到目前为止还无法更改它。
我不知道该尝试什么以及我做错了什么。
下面的代码段
html {
font-family: 'Lato', sans-serif;
}
@media (min-width: 992px) {
html {
margin: 0 5%;
}
}
/********************************
NAVBAR
********************************/
#navbar {
background-color: #913D88;
}
@media (min-width: 992px) {
#navbar {
border-radius: 10px;
}
}
#navbar ul {
list-style: none;
}
#navbar ul li {
padding: 0.5em;
font-size: 1.1em;
font-weight: 400;
display: inline-block;
}
@media (min-width: 767px) {
#navbar ul li {
font-size: 1.2em;
}
}
#navbar ul li a {
padding: 0.3em;
background-color: #913D88;
}
#navbar ul li a:visited,
#navbar ul li a:link {
color: #fff;
text-decoration: none;
}
#navbar ul li a:hover {
color: #491f45;
background-color: #c371ba;
}
#navbar ul .dropdown {
position: relative;
}
#navbar ul .dropdown:hover > .drop-nav {
display: block;
}
#navbar ul .dropdown .drop-nav {
position: absolute;
display: none;
}
#navbar ul .dropdown .drop-nav li {
padding: 0.5em;
display: block;
background-color: #913D88;
border-bottom: 1px solid black;
}
#navbar ul .dropdown .drop-nav a {
padding: 0.3em;
background-color: #913D88;
}
#navbar ul .dropdown .drop-nav a:visited,
#navbar ul .dropdown .drop-nav alink {
color: #fff;
text-decoration: none;
}
#navbar ul .dropdown .drop-nav a:hover {
color: #491f45;
background-color: #c371ba;
}
&#13;
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>ZIC Knjižnica</title>
<link href='http://fonts.googleapis.com/css?family=Lato:400,700,900&subset=latin-ext,latin' rel='stylesheet' type='text/css'>
</head>
<body>
<div id="navbar">
<ul>
<li><a href="http://www.ijs.si/ijsw">IJS</a>
</li>
<li><a href="#">knjižnica</a>
</li>
<li class="dropdown"><a href="#">zaloga <span class="ion-arrow-down-b"></a>
<ul class="drop-nav">
<li><a href="#">novi izvodi tiskanih revij</a>
</li>
<li><a href="#">elektronske revije</a>
</li>
<li><a href="#">katalog</a>
</li>
<li><a href="#">baze podatkov</a>
</li>
</ul>
</li>
<li><a href="#">storitve <span class="ion-arrow-down-b"></a>
</li>
<li><a href="#">ENG</a>
</li>
</ul>
</div>
</body>
</html>
&#13;
答案 0 :(得分:0)
您可以通过在css中添加font-size属性来手动更改大小。
#navbar ul .dropdown .drop-nav a {
padding: 0.3em;
background-color: #913D88;
font-size:10px;
}
您可以将字体大小更改为您需要的字体大小。
答案 1 :(得分:0)
#navbar ul .dropdown .drop-nav a {
padding: 0.3em;
background-color: #913D88;
font-size: 20px;
}
您可以根据需要选择字体大小。你也可以使用第二种方法。
问题出现了bcoz你没有给父标签字体大小 如果你给父母一个字体大小,那么孩子就会继承它。
#navbar ul li a {
padding: 0.3em;
background-color: #913D88;
font-size: 10px;
}
答案 2 :(得分:0)
正如您可以在以下资源中阅读的那样,em
单位是父值的相对值。
因此,如果您的父元素包含font-size:1.1em
且其子元素也为font-size:1.1em
,则子元素的字体大小实际上为1.1*1.1*{Top parent font-size}
,因此这些链接看起来更大。
解决方案1:
例如,如果我将#navbar ul li
更改为px
大小,则主链接和悬停链接的字体大小将相同。
#navbar ul li{
font-size: 14px;
}
解决方案2:
将1em
设置为字体大小到下拉列表中的链接。
#navbar ul .dropdown .drop-nav a{
font-size: 1em;
}
关于行高毛刺,经过几次检查后,似乎是由于填充引起的毛刺。考虑重置dropdown li a
元素的填充,如下所示:
#navbar ul .dropdown .drop-nav a{
padding: 0;
}
<强> Resource: Chapter 4: The amazing em unit 强>
当用于指定字体大小时,em单位指的是字体大小 父元素。所以,在上面的例子中,字体大小 h1元素设置为body元素字体大小的两倍。 为了找到h1元素的字体大小,我们需要 知道身体的字体大小。因为这并没有在。中指定 样式表,浏览器必须从其他地方找到它 - a 好看的地方是用户的偏好。所以,如果用户有 将正常字体大小设置为10个点,即h1元素的大小 将是20分。这将使文件标题脱颖而出 相对于周围的文字。因此:始终使用ems进行设置 字体大小。