如何让 link div 填充导航容器?
How can I make the link divs to fill the navigation container?
我正在尝试开发一个可以响应屏幕尺寸的网页。但是我想不出一种方法来执行此操作并用 link div 填充导航 div。我在下面有一个屏幕截图和要遵循的代码。小屏幕尺寸和 link div 也存在问题。我希望 div 随屏幕一起缩小,而不是相互堆叠。至少直到某个时刻。有关此的信息也会有所帮助。此外,如果您愿意,解释为什么会发生这些事情也有很大帮助。那么请告诉。
HTML:
<nav id="nav">
<a href="FYFHome.html" ><div id="link"><p>Home</p></div></a>
<a href="FYFHome.html" ><div id="link"><p>Services</p></div> </a>
<a href="FYFHome.html" ><div id="link"><p>Our Customers</p></div></a>
<a href="FYFHome.html" ><div id="link"><p>Contact</p></div></a>
</nav>
CSS:
#link
{
height: 70%;
width: 25%;
display: inline-block;
border: 1px dotted green;
text-decoration: none;
text-align: center;
padding: none;
}
#nav
{
border: 1px solid black;
width: 100%;
height: 80px;
margin: auto;
}
这是一个JSFiddle
25% 会合适,但由于您向 div 添加了 2 像素边框(左 1 像素,右 1 像素),它太宽了。包含边框(或填充和边距)的最佳方法是 calc()
函数,因此请使用 calc(25% - 2px)
。
下一期是div之间的白色space。它们在那里是因为元素之间的 spaces / 换行符。只需在下一个元素的行中添加一个元素的结束标记(或者只是 >
)
<nav id="nav">
<a href="FYFHome.html"><div id="link"><p>Home</p></div></a
><a href="FYFHome.html"><div id="link"><p>Services</p></div></a
><a href="FYFHome.html"><div id="link"><p>Our Customers</p></div></a
><!-- No more line breaks or spaces between the elements --><a href="FYFHome.html"><div id="link"><p>Contact</p></div></a>
</nav>
要为较小的屏幕更改 CSS,只需添加到您的样式文件
@media screen and (max-width: 320px) {
/* Your CSS for screens smaller than 320px */
}
您可以根据需要添加任意数量的样式,因此您可以针对不同的屏幕尺寸使用不同的 CSS 样式。
只需添加float:left
*{box-sizing: border-box;}
#nav {
border: 1px solid black;
width: 100vw;
height: 80px;
margin: auto;
}
#link {
height: 70%;
width: 25%;
display: inline-block;
float: left;/*add this*/
border: 1px dotted green;
text-decoration: none;
text-align: center;
padding: none;
}
<nav id="nav">
<a href="FYFHome.html">
<div id="link">
<p>Home</p>
</div>
</a>
<a href="FYFHome.html">
<div id="link">
<p>Services</p>
</div>
</a>
<a href="FYFHome.html">
<div id="link">
<p>Our Customers</p>
</div>
</a>
<a href="FYFHome.html">
<div id="link">
<p>Contact</p>
</div>
</a>
</nav>
我正在尝试开发一个可以响应屏幕尺寸的网页。但是我想不出一种方法来执行此操作并用 link div 填充导航 div。我在下面有一个屏幕截图和要遵循的代码。小屏幕尺寸和 link div 也存在问题。我希望 div 随屏幕一起缩小,而不是相互堆叠。至少直到某个时刻。有关此的信息也会有所帮助。此外,如果您愿意,解释为什么会发生这些事情也有很大帮助。那么请告诉。
HTML:
<nav id="nav">
<a href="FYFHome.html" ><div id="link"><p>Home</p></div></a>
<a href="FYFHome.html" ><div id="link"><p>Services</p></div> </a>
<a href="FYFHome.html" ><div id="link"><p>Our Customers</p></div></a>
<a href="FYFHome.html" ><div id="link"><p>Contact</p></div></a>
</nav>
CSS:
#link
{
height: 70%;
width: 25%;
display: inline-block;
border: 1px dotted green;
text-decoration: none;
text-align: center;
padding: none;
}
#nav
{
border: 1px solid black;
width: 100%;
height: 80px;
margin: auto;
}
这是一个JSFiddle
25% 会合适,但由于您向 div 添加了 2 像素边框(左 1 像素,右 1 像素),它太宽了。包含边框(或填充和边距)的最佳方法是 calc()
函数,因此请使用 calc(25% - 2px)
。
下一期是div之间的白色space。它们在那里是因为元素之间的 spaces / 换行符。只需在下一个元素的行中添加一个元素的结束标记(或者只是 >
)
<nav id="nav">
<a href="FYFHome.html"><div id="link"><p>Home</p></div></a
><a href="FYFHome.html"><div id="link"><p>Services</p></div></a
><a href="FYFHome.html"><div id="link"><p>Our Customers</p></div></a
><!-- No more line breaks or spaces between the elements --><a href="FYFHome.html"><div id="link"><p>Contact</p></div></a>
</nav>
要为较小的屏幕更改 CSS,只需添加到您的样式文件
@media screen and (max-width: 320px) {
/* Your CSS for screens smaller than 320px */
}
您可以根据需要添加任意数量的样式,因此您可以针对不同的屏幕尺寸使用不同的 CSS 样式。
只需添加float:left
*{box-sizing: border-box;}
#nav {
border: 1px solid black;
width: 100vw;
height: 80px;
margin: auto;
}
#link {
height: 70%;
width: 25%;
display: inline-block;
float: left;/*add this*/
border: 1px dotted green;
text-decoration: none;
text-align: center;
padding: none;
}
<nav id="nav">
<a href="FYFHome.html">
<div id="link">
<p>Home</p>
</div>
</a>
<a href="FYFHome.html">
<div id="link">
<p>Services</p>
</div>
</a>
<a href="FYFHome.html">
<div id="link">
<p>Our Customers</p>
</div>
</a>
<a href="FYFHome.html">
<div id="link">
<p>Contact</p>
</div>
</a>
</nav>