如何跨浏览器垂直对齐元素?

发布于 2024-10-07 18:39:25 字数 84 浏览 10 评论 0原文

我正在使用 vertical-align: middle 属性进行垂直对齐,它在 Chrome 中工作,但在 IE 中不起作用。

I am doing vertical alignment using vertical-align: middle property its working in Chrome but not in IE.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

兮颜 2024-10-14 18:39:25

你尝试过弹性盒子吗?这就是我使用的,我没有遇到很多(如果有的话)兼容性问题,IE 可能有点挑剔,但它绝对支持它。

要居中项目,请将元素的容器设置为 display: flex; 并添加 align-items: center; 以将它们在容器内垂直居中。您还可以使用 justify-content: center; 将它们水平居中

。您可以看到它在这里得到了广泛支持:https://caniuse.com/#feat=flexbox

Have you tried flexbox? It's what I use and I haven't had many (if any) compatibility issues, IE can be a little finicky but it definitely supports it.

To center items, you set the container of the elements to display: flex; and also add align-items: center; to center them vertically within the container. You can also center them horizontally with justify-content: center;

You can see it's widely supported here: https://caniuse.com/#feat=flexbox

幸福%小乖 2024-10-14 18:39:25

据说,IE8+支持vertical-align,但IE7-支持越野车。对于较旧的浏览器,您可能需要尝试将元素容器的 CSS 设置为 top: 50%top: -50%

Supposedly, IE8+ supports vertical-align but IE7- support is buggy. For older browsers, you may want to try setting the element's container's CSS to top: 50% or top: -50%.

感情旳空白 2024-10-14 18:39:25

如果您想在框中放置单行文本,例如标题标题,请使用 line-height

例如,使用 200 像素宽度和 40 像素高度的框:

.the_box{
width: 200px;
height: 40px;
line-height: 40px;
}

它简单、优雅且跨域浏览器。如果文本长度超过 200 像素,此方法将不起作用。

If you want to place a one line text, for example a header title in your box, than use line-height

For example with a 200px width and 40px height box:

.the_box{
width: 200px;
height: 40px;
line-height: 40px;
}

It's easy, elegant, and cross-browser. If you have longer text than 200px, this method will not work.

娇女薄笑 2024-10-14 18:39:25

只需添加以下内容:
显示:表格单元格;

Simply add this:
display: table-cell;

寄人书 2024-10-14 18:39:25

style="valign:middle; vertical-align:middle;"

版本的 IE 将选择 valign:middle 并忽略 vertical-align:middle

所有其他浏览器(例如 Firefox、Chrome、Safari 等)都会选择 vertical-align:middle 并忽略 valign:middle

Put

style="valign:middle; vertical-align:middle;"

Newer versions of IE will pick valign:middle and ignore vertical-align:middle.

All other browsers like Firefox, Chrome, Safari etc. will pick vertical-align:middle and ignore valign:middle.

呆橘 2024-10-14 18:39:25

我也遇到了这个问题,我的一位同事创建了一个日历表。日历在 Chrome、Firefox 中显示效果很好,但每天左上角的日期文本被截断了一半。我删除了垂直对齐属性并将其替换为位置。见下文。

原始 CSS:

.dayText {
    vertical-align: text-bottom;
}

我的 CSS 修复:

.dayText {
    position: relative;
    top: 10px;
    left: 0px;
    height: inherit; 
}

I also had this problem, with a calendar table a colleague of mine created. The Calendar viewed nicely in Chrome, Firefox, but the date text was half cut off in the top left corner of each day. I removed the vertical-alignment property and replaced it with position. See below.

Original CSS:

.dayText {
    vertical-align: text-bottom;
}

My CSS Fix:

.dayText {
    position: relative;
    top: 10px;
    left: 0px;
    height: inherit; 
}
心是晴朗的。 2024-10-14 18:39:25

我遇到了类似的问题

,我有以下问题

<div>
  <span> some text </span>
</div>

,这全部都在表的标题中。

我可以通过将以下内容添加到范围来解决这个问题

<div>
  <span style="position: absolute; padding-top:1px;"> some text </span>
</div>

I had a similar problem

I had the following

<div>
  <span> some text </span>
</div>

This was all in a header of a table.

I was able to get around this issue by adding the following to the span

<div>
  <span style="position: absolute; padding-top:1px;"> some text </span>
</div>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文