我一直在绞尽脑汁使用下面的方法在css中创建垂直对齐

.base{
        background-color:green;
	    width:200px;
	    height:200px;
	    overflow:auto;
	    position:relative;
	}

    .vert-align{
		padding-top:50%;
		height:50%;
	}
<!-- and used the following div structure. -->

    <div class="base">
       <div class="vert-align">
    	   Content Here
       </div>
    </div>

虽然这似乎适用于本例,但当我增加或减少基本div的宽度时,垂直对齐会断裂,这让我感到惊讶.我希望当我设置padding top属性时,它会将padding作为父容器高度的一个百分比,在我们的例子中,这是基础,但上面50%的值是作为宽度的一个百分比计算的:(

有没有一种方法可以在不使用JavaScript的情况下,将填充和/或边距设置为高度的百分比?

推荐答案

解决方法是,垂直填充和边距是相对于宽度的,但topbottom是相对于宽度的

因此,只需将一个div放入另一个div中,并在内部div中使用类似于top:50%的内容(请记住,如果它仍然不起作用,position也无关紧要)

Html相关问答推荐

传单自定义标记(divIcon)html/css不适用

springBoot + Thymeleaf:基于Locale设置页面语言

使用tauri构建的Next.js应用程序不显示我的404页面

如何格式化HTML文本,使其环绕关键字

如何找到FontAwese图标的Unicode值?

为什么这个高度为100%的页面会出现滚动条?

元素offsetTop在滚动容器中时没有更改

水平行中按钮的垂直偏移

rmarkdown HTML数字不适用于针织衫_1.44

如果使用复选框属性更改,如何防止事件更改?

如何创建淡出研磨背景

发送带有图像的Google文档作为HTML格式的邮件正文不再起作用

Flex布局中,当父元素高度较高时,交叉轴上出现额外的空白问题.

将现有内容拆分为三列或部分

网页设计不适合移动设备

单击按钮时更改字体真棒图标

不同屏幕尺寸的显示问题

使用 css 将内容居中并向左对齐?

隐藏在标题后面的下拉菜单

标题之间和之后的 Hr 线