发布于2024-11-03 21:54 阅读(190) 评论(0) 点赞(18) 收藏(4)
我正在尝试将图像垂直居中放置在 div 中。我尝试过在很多元素上使用 vertical-align:middle,但找不到正确的 css 方法。我很确定它一定很简单,但就是做不到正确。我添加了 css 来勾勒出页面上 html 的各个部分,可以看到“a”和 span 的高度没有占据 div 的整个高度。这可能是我的问题的一部分,但 height: 100% 似乎不适用于这些元素。有人能帮忙将图像垂直居中放置在父 div 中吗?
我的html:
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<title>Title</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" type="text/css" href="main.css" />
</head>
<body>
<div id="index">
<div id="thumbs">
<div id='thumbsdiv'><span class="thumbcell"><a href="0.html"><img src="thumbs\0.jpg" title="0" alt="0.jpg" /></a></span></div>
<div id='thumbsdiv'><span class="thumbcell"><a href="1.html"><img src="thumbs\1.jpg" title="1" alt="1.jpg" /></a></span></div>
<div id='thumbsdiv'><span class="thumbcell"><a href="2.html"><img src="thumbs\2.jpg" title="2" alt="2.jpg" /></a></span></div>
<div id='thumbsdiv'><span class="thumbcell"><a href="3.html"><img src="thumbs\3.jpg" title="3" alt="3.jpg" /></a></span></div>
</div>
</div>
</body>
</html>
和 CSS:
body {
background-color: #808080;
color: #FFFF00;
}
img {
height: 80px;
width: 80px;
margin: 5px 5px 5px 5px;
border-style: solid;
border-color: #ff0000;
border-width: 1px;
}
#thumbs {
display: flex;
flex-wrap: wrap;
justify-content: center;
}
#thumbs div {
height: 180px;
width: 220px;
min-width: 200px;
margin: 1px 1px 1px 1px;
border-style: solid;
border-color: #00ff00;
border-width: 1px;
text-align: center;
vertical-align: middle;
padding: 10px;
}
a{
margin: 1px 1px 1px 1px;
border-style: solid;
border-color: #0000ff;
border-width: 1px;
justify-content: center;
}
span{
margin: 10px 10px 10px 10px;
border-style: solid;
border-color: #00ffff;
border-width: 1px;
justify-content: center;
}
我想要的结果是红色框垂直位于绿色框的中心。
由于您的#thumbs
元素已经是flexbox
,您不妨也使其#thumbs div
灵活。这样,您的图像就可以轻松地水平和垂直居中,只需三行:
display: flex;
align-items: center;
justify-content: center;
此外,如果您希望<a>
链接具有图像的整个尺寸,则需要<span>
完全删除(不必要的)容器。
从以下情况可以看出:
body {
background-color: #808080;
color: #FFFF00;
}
img {
height: 80px;
width: 80px;
margin: 5px 5px 5px 5px;
border-style: solid;
border-color: #ff0000;
border-width: 1px;
}
#thumbs {
display: flex;
flex-wrap: wrap;
justify-content: center;
}
#thumbs div {
display: flex;
align-items: center;
justify-content: center;
height: 180px;
width: 220px;
min-width: 200px;
margin: 1px 1px 1px 1px;
border-style: solid;
border-color: #00ff00;
border-width: 1px;
text-align: center;
vertical-align: middle;
padding: 10px;
}
a {
margin: 1px 1px 1px 1px;
border-style: solid;
border-color: #0000ff;
border-width: 1px;
justify-content: center;
}
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<title>Title</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" type="text/css" href="main.css" />
</head>
<body>
<div id="index">
<div id="thumbs">
<div><a href="0.html"><img src="https://via.placeholder.com/100x100" title="0" alt="0.jpg" /></a></div>
<div><a href="1.html"><img src="https://via.placeholder.com/100x100" title="1" alt="1.jpg" /></a></div>
<div><a href="2.html"><img src="https://via.placeholder.com/100x100" title="2" alt="2.jpg" /></a></div>
<div><a href="3.html"><img src="https://via.placeholder.com/100x100" title="3" alt="3.jpg" /></a></div>
</div>
</div>
</body>
</html>
另请注意,您的示例中有重复的#thumbsdiv
ID,这被视为无效标记。我已在答案中删除了这些内容(并添加了占位符图像)。
作者:黑洞官方问答小能手
链接:http://www.qianduanheidong.com/blog/article/534977/3f88027967410bcfff18/
来源:前端黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 前端黑洞网 All Rights Reserved 版权所有,并保留所有权利。 京ICP备18063182号-3
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!