gpt4 book ai didi

css - 另一个 css 垂直对齐

转载 作者:太空宇宙 更新时间:2023-11-04 15:14:57 24 4
gpt4 key购买 nike

尝试在不添加边距/填充的情况下使右侧的灰色框居中对齐:

<!DOCTYPE html>
<html>
<head>
<title></title>
<style>
#frame { border: 1px solid #999; padding: 0.5em; width: 60%; margin: 0 auto; }
#header { height: 40px; line-height: 40px; background-color: #eee; position: relative; width: 100%; }
h3 { margin: 0em; padding: 0em; }
h3 span { margin-left: 0.5em; }
a { float: right; text-align: right; }
a span { vertical-align: middle; background-color: #ccc; width: 1em; height: 1em; color: #fff; margin-right: 0.5em; display: inline-block; }
#content { height: 16em; }
</style>
</head>
<body>
<div id="frame">
<div id="header">
<h3><span>Heading</span><a href="#"><span></span></a></h3>
</div>
<div id="content">
</div>
</div>
</body>
</html>

http://jsfiddle.net/hotdiggity/4yGh8/

最佳答案

有几种不同的方法可以解决这个问题,但没有一种是完美的。

我稍微修改了标记,以便更容易为以下内容编写选择器:

<div id="frame">
<div id="header">
<h3><span>Heading</span><span><a href="#"></a></span></h3>
</div>
<div id="content">
</div>
</div>

CSS 表格

如果您有要包装的内容,结果可能不太好:

http://jsfiddle.net/4yGh8/4/

#frame { border: 1px solid #999; padding: 0.5em; width: 60%; margin: 0 auto; }  
#header { height: 40px; line-height: 40px; background-color: #eee; position: relative; width: 100%; }
h3 { margin: 0em; padding: 0em; display: table; width: 100%; }
h3 span { display: table-cell; vertical-align: middle; }
h3 span { padding: 0 0.5em; width: 100% }
h3 span:last-child { width: 1px; line-height: 1; }
a { background-color: #ccc; width: 1em; height: 1em; color: #fff; display: block }
#content { height: 16em; }

flexbox

确保检查 http://caniuse.com/#search=flexbox查看您需要哪些前缀才能完成这项工作。

http://jsfiddle.net/4yGh8/6/ (不包括前缀)

#frame { border: 1px solid #999; padding: 0.5em; width: 60%; margin: 0 auto; }  
#header { height: 40px; line-height: 40px; background-color: #eee; position: relative; width: 100%; }

h3 {
margin: 0em;
padding: 0em;
display: flex;
width: 100%;
justify-items: space-between;
align-items: center;
}

h3 span {
margin: 0 .5em;
}

h3 span:first-child {
flex: 1 1 auto;
}

a { background-color: #ccc; width: 1em; height: 1em; color: #fff; display: block }
#content { height: 16em; }

绝对定位

http://jsfiddle.net/4yGh8/7/

#frame { border: 1px solid #999; padding: 0.5em; width: 60%; margin: 0 auto; }  
#header { height: 40px; line-height: 40px; background-color: #eee; position: relative; width: 100%; }

h3 {
margin: 0em;
padding: 0em;
position: relative;
}

h3 span {
padding: 0 .5em;
}

h3 span:last-child {
position: absolute;
right: 0;
top: 50%;
margin-top: -.5em; /* half of the element's height */
}

a { background-color: #ccc; width: 1em; height: 1em; color: #fff; display: block }
#content { height: 16em; }

关于css - 另一个 css 垂直对齐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15090018/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com