- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我唯一的问题是我想把菜单放在 div 的中间,然后我尝试插入垂直对齐,因为它已经具有 inline-block 样式属性,但老实说我不知道为什么。为什么另一个div是生效的,而不是我想生效的。
这是我的例子:
.content{
width: 100%;
height: 90%;
}
.middle{
position: fixed;
display: flex;
justify-content: center;
flex-direction: column;
align-items: center;
}
.menu{
width: 70%;
height: 80%;
}
.three {
width: 30%;
}
.six{
width: 60%;
}
.inline {
display: inline-block;
}
.h-80{
height: 80%;
}
.h-100{
height: 100%;
}
<div class="content middle">
<div class="menu">
<div class="three inline h-80">
this is taking effect
</div>
<div class="six inline h-100" style="vertical-align: middle;">
while I inputing vertical align here
</div>
</div>
</div>
您可以运行代码片段来检查我的问题的真实性,哦,我尝试了 chrome 和 moz,两者都显示相同的结果。虽然我是菜鸟,但我知道发生了什么,直到尝试了 3 个小时..
最佳答案
vertical-align
是一个奇怪的 CSS 属性。我在 .inline
元素周围添加了边框以显示效果。
第二个 div
与父容器的基线居中对齐。第一个隐含了 vertical-align: baseline
并且它坚持了这一点。
.content{
width: 100%;
height: 90%;
}
.middle{
position: fixed;
display: flex;
justify-content: center;
flex-direction: column;
align-items: center;
}
.menu{
width: 70%;
height: 80%;
}
.three {
width: 30%;
}
.six{
width: 60%;
}
.inline {
display: inline-block;
border: 1px solid;
}
.h-80{
height: 80%;
}
.h-100{
height: 100%;
}
<div class="content middle">
<div class="menu">
<div class="three inline h-80">
this is taking effect
</div>
<div class="six inline h-100" style="vertical-align: middle;">
while I inputing vertical align here
</div>
</div>
</div>
如果我将 vertical-align:middle
放在两个 div
上,您会看到容器都居中对齐,而 content那些 div
不是。
.content{
width: 100%;
height: 90%;
}
.middle{
position: fixed;
display: flex;
justify-content: center;
flex-direction: column;
align-items: center;
}
.menu{
width: 70%;
height: 80%;
}
.three {
width: 30%;
}
.six{
width: 60%;
}
.inline {
display: inline-block;
border: 1px solid;
}
.h-80{
height: 80%;
}
.h-100{
height: 100%;
}
<div class="content middle">
<div class="menu">
<div class="three inline h-80" style="vertical-align: middle">
this is taking effect
</div>
<div class="six inline h-100" style="vertical-align: middle;">
while I inputing vertical align here
</div>
</div>
</div>
您还需要将内容的对齐方式设置为居中。唉,这不能用相同的技术来完成。为此,我将使用 flexbox 和 display: inline-flex;对齐元素:居中
。对于替代方案,请查看以下问题:How do I vertically align text in a div?
.content{
width: 100%;
height: 90%;
}
.middle{
position: fixed;
display: flex;
justify-content: center;
flex-direction: column;
align-items: center;
}
.menu{
width: 70%;
height: 80%;
}
.three {
width: 30%;
}
.six{
width: 60%;
}
.inline {
display: inline-flex;
align-items: center;
border: 1px solid;
}
.inline span {
vertical-align: middle;
}
.h-80{
height: 80%;
}
.h-100{
height: 100%;
}
<div class="content middle">
<div class="menu">
<div class="three inline h-80" style="vertical-align: middle">
this is taking effect
</div>
<div class="six inline h-100" style="vertical-align: middle;">
while I inputing vertical align here
</div>
</div>
</div>
进一步调整:你可以完全放弃内联 block ,到处使用 flexbox
.middle, .menu, .three, .six {
display: flex;
align-items: center;
}
.content {
width: 100%;
height: 90%;
}
.middle, .menu, .three, .six {
display: flex;
align-items: center;
}
.middle {
position: fixed;
justify-content: center;
flex-direction: column;
}
.menu {
width: 70%;
height: 80%;
}
.three {
width: 30%;
background-color: gold;
}
.six {
width: 60%;
background-color: silver;
}
.h-80 {
height: 80%;
}
.h-100 {
height: 100%;
}
<div class="content middle">
<div class="menu">
<div class="three h-80" style="vertical-align: middle">
this is taking effect
</div>
<div class="six h-100" style="vertical-align: middle;">
while I inputing vertical align here
</div>
</div>
</div>
关于html - chrome 和 moz 中的垂直对齐问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57708156/
-moz-transform 之间有什么区别?和 -moz-transform-origin ? 最佳答案 -moz-transform 给出转换,-moz-transform-origin 说明应用
Firefox 的 -moz-inline-box 和 -moz-inline-stack 专有显示值有什么区别? 最佳答案 https://developer.mozilla.org/en/CSS/
在我看来,伪类 -moz-focus-inner 和 -moz-focusring 具有相同的任务。 虽然我经常在示例中看到属性 -moz-focus-inner,但它似乎对表单元素的格式没有任何影响
我正在使用 moz-boder-radius(-webkit-border-top-left-radius) 向我的网站添加圆形 div。 这些在 Mozilla、chrome 和 safari 中工
Mozilla 在控制台上告诉我 -moz-border-radius 和 -moz-box-shadow 无法识别。为什么不被认可?我在 Linux 上安装了 Mozilla 14.0.1! 最佳答
我试图在父元素内将链接元素一个一个地居中对齐,其中元素采用最小宽度和高度,就像使用 display:inline-block 时一样 .parent { text-align: -moz-ce
当使用 CSS 媒体查询设备像素密度时,我都看到了 -moz-min-device-pixel-ratio和 min--moz-device-pixel-ratio . 例如: @media on
在我所有的按钮上,填充在 Firefox 中的行为不同。从研究中我知道这是因为 FF 在默认样式表中有一些奇怪的设置,但我已将一般修复添加到我的样式表中。这很好,我可以接受,除了一个按钮不适合 fir
亲爱的 friend 们,冒着痛苦的风险,我可以谦虚地提交这段代码供您审查,因为在我看来,我已经按照所有教程的说明进行操作,但最后却没有成功。当我尝试在 CSS 验证中验证代码时,我收到五个警告, 抱
我目前正在更改所选文本的默认背景颜色。这很好用: ::selection { background:#B6D0FA; } ::-moz-selection { background:#B6D0FA;
我试图理解 -moz-linear-gradient 的一些语法,这就是我想要理解的:-moz-linear-gradient(0% 0% 270deg, #FEFEFE, #f0f0f0);,我在找
有人可以向我解释这部分代码的含义吗? repeat scroll 0 0 #F6F6F6; 我搜索了很多,只找到了这部分的语法 -moz-linear-gradient(center top , #F
最后,我想让firefox和chrome的显示方式一样。在 chrome 上,我注意到 float: left 破坏了网站,但在 FF 上有效。但是,如果我将 float:none Chrome 显示
在另一个问题中,我询问了关于对齐的问题,这是为了回答关于 firefox 是一个 twit 的问题。它起作用了,但它在我嘴里留下了酸味,我会解释原因。 button::-moz-focus-inner
我试图通过 jquery 调用来调用跨域 Web 服务 $.ajax() 服务返回 1.4248 如果我指定 dataType xml(或未指定任何内容 - jquery 猜测正确),我会收到 XM
我想在扩展程序的页面上执行用户脚本。 我正在使用 Greasemonkey,是否有可用于在扩展程序页面上执行用户脚本的权限、设置或包含过滤器? 现在,我通过在解压并重新打包扩展程序后编辑 html 文
这是一个小的 Javascript。 (这是一个“最小的例子”。) var now = new Date(); var minute = now.getMinutes();
我有以下内容: .ui-dialog-body { position: relative; /* Needed for sliding left, right */ min-heigh
我正在寻找一个关于如何做这样的事情的真实例子: 图像上的滚动会导致文本突出显示,如本页所示:http://shop.parklafun.com/t-shirts/ 最佳答案 如果我理解您的问题,那么-
我在悬停时添加了 -moz-transition:all 0.2s ease-in。但在 FireFox 中标题和文本移动不对称。 样本:http://jsfiddle.net/wkcpL/1/ fo
我是一名优秀的程序员,十分优秀!