为什么我不能更改 flex 项目的大小?
Why can't I change flex items size?
这是我的代码
html {
box-sizing: border-box;
}
* {
box-sizing: inherit;
margin: 0;
padding: 0;
}
header nav ul {
display: flex;
list-style: none;
justify-content: center;
align-items: center;
height: 3em;
background-color: #783F27;
}
.naviga {
border: solid medium;
border-radius: 0.4em;
margin: 0 0.5em;
width: 10em;
color: goldenrod;
}
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>Learning</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
<header>
<nav>
<ul>
<li><a class="naviga" href="">Menu</a></li>
<li><a class="naviga" href="">News</a></li>
<li><a class="naviga" href="">About</a></li>
<li><a class="naviga" href="">Contact</a></li>
</ul>
</nav>
</header>
</body>
</html>
即使我指定 width: 10em
,<li>
元素显示宽度为 min-content
(或 max-content
,在本例中相同)。如果我指定 height
,也会发生同样的事情。这是为什么?
我想,我还没有 运行 代码,但看起来这可能是问题所在?
html {
box-sizing: border-box;
}
* {
box-sizing: inherit;
margin: 0;
padding: 0;
}
您为整个文档定义了两次框大小。尝试删除其中之一,我会测试您的代码,然后返回给您更多详细信息。
我会建议 box-sizing: border-box;对于 * 并将其从 html {} 元素
中删除
此外,像这样将显示 属性 添加到导航的 css 并且它有效。
.naviga {
display: flex;
border: solid medium;
border-radius: 0.4em;
margin: 0 0.5em;
width: 200px;
color: goldenrod;
}
flex
属性 设置灵活项目的灵活长度。
flex: 0 0 40%
您应该更改 li 的宽度,而不是 a 标签,请参阅下面的示例
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>Learning</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
html {
box-sizing: border-box;
}
* {
box-sizing: inherit;
margin: 0;
padding: 0;
}
header nav ul {
display: flex;
list-style: none;
justify-content: center;
align-items: center;
height: 3em;
background-color: #783F27;
}
.naviga {
color: goldenrod;
}
.liClass {
border: solid goldenrod;
border-radius: 0.4em;
margin: 0 0.5em;
width: 20em;
}
</style>
</head>
<body>
<header>
<nav>
<ul>
<li class="liClass"><a class="naviga" href="">Menu</a></li>
<li class="liClass"><a class="naviga" href="">News</a></li>
<li class="liClass"><a class="naviga" href="">About</a></li>
<li class="liClass"><a class="naviga" href="">Contact</a></li>
</ul>
</nav>
</header>
</body>
</html>
这是我的代码
html {
box-sizing: border-box;
}
* {
box-sizing: inherit;
margin: 0;
padding: 0;
}
header nav ul {
display: flex;
list-style: none;
justify-content: center;
align-items: center;
height: 3em;
background-color: #783F27;
}
.naviga {
border: solid medium;
border-radius: 0.4em;
margin: 0 0.5em;
width: 10em;
color: goldenrod;
}
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>Learning</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
<header>
<nav>
<ul>
<li><a class="naviga" href="">Menu</a></li>
<li><a class="naviga" href="">News</a></li>
<li><a class="naviga" href="">About</a></li>
<li><a class="naviga" href="">Contact</a></li>
</ul>
</nav>
</header>
</body>
</html>
即使我指定 width: 10em
,<li>
元素显示宽度为 min-content
(或 max-content
,在本例中相同)。如果我指定 height
,也会发生同样的事情。这是为什么?
我想,我还没有 运行 代码,但看起来这可能是问题所在?
html {
box-sizing: border-box;
}
* {
box-sizing: inherit;
margin: 0;
padding: 0;
}
您为整个文档定义了两次框大小。尝试删除其中之一,我会测试您的代码,然后返回给您更多详细信息。
我会建议 box-sizing: border-box;对于 * 并将其从 html {} 元素
中删除此外,像这样将显示 属性 添加到导航的 css 并且它有效。
.naviga {
display: flex;
border: solid medium;
border-radius: 0.4em;
margin: 0 0.5em;
width: 200px;
color: goldenrod;
}
flex
属性 设置灵活项目的灵活长度。
flex: 0 0 40%
您应该更改 li 的宽度,而不是 a 标签,请参阅下面的示例
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>Learning</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
html {
box-sizing: border-box;
}
* {
box-sizing: inherit;
margin: 0;
padding: 0;
}
header nav ul {
display: flex;
list-style: none;
justify-content: center;
align-items: center;
height: 3em;
background-color: #783F27;
}
.naviga {
color: goldenrod;
}
.liClass {
border: solid goldenrod;
border-radius: 0.4em;
margin: 0 0.5em;
width: 20em;
}
</style>
</head>
<body>
<header>
<nav>
<ul>
<li class="liClass"><a class="naviga" href="">Menu</a></li>
<li class="liClass"><a class="naviga" href="">News</a></li>
<li class="liClass"><a class="naviga" href="">About</a></li>
<li class="liClass"><a class="naviga" href="">Contact</a></li>
</ul>
</nav>
</header>
</body>
</html>