表格单元格内的 CSS 缩放和 div 对齐

Posted

技术标签:

【中文标题】表格单元格内的 CSS 缩放和 div 对齐【英文标题】:CSS zoom and div alignment inside a table cell 【发布时间】:2014-08-29 09:28:45 【问题描述】:

我有以下内容:

这是一个表格,有一行和三个单元格,两个蓝色单元格和中间的单元格,在中间的单元格中我有一个 div,现在看起来不错。

但是如果我将 zoom 属性放在 div 中(缩放:0.8),我会在 IE11 中得到一个额外的空间,就好像 div 仍然是相同的大小,像这样:

在 chrome 中,表格只是调整到 div 大小,但在 IE 中没有,有没有我可以做到这一点?

这是示例的关键:

http://jsfiddle.net/Z3wbN/3/

html

<table class="container">
<tr>
    <td class="border">
    </td>
    <td>
        <div class="content">
            This is a test
        </div>
    </td>
    <td class="border">
    </td>
</tr>

CSS:

.container 
    background-color: #ddd;


.border 
    background-color: blue;
    width:10px;


.content 
    margin: auto;
    width: 500px;
    border: 2px solid yellow;
    zoom: 0.8;

【问题讨论】:

你把zoom放错了。您的缩放规则必须在容器中。 为什么缩放必须在容器中?该问题将缩放放在 div 上而不是放在桌子上,如果缩放在 .container 或 .content 中,结果不一样 是的,@Monty82 是对的,我需要缩放 div,而不是容器 【参考方案1】:

一种可能的解决方案,虽然我不知道你是否喜欢它,但可能是这个:http://jsfiddle.net/Z3wbN/14/

关于那个解决方案:

标签中添加了几个类/ID; 宽度分配给中间单元格,而不是分配给该单元格内的 div; 如果是IE浏览器,则将div宽度调整为125%(100% / 0.8即缩放)。

检测浏览器的方式是javascript,但你可以尝试任何你想要的(我从Detect IE version (prior to v9) in JavaScript得到它):

// if it's an IE browser then update the class to "container ie"
if (navigator.userAgent.indexOf('MSIE') !== -1 || navigator.appVersion.indexOf('Trident/') > 0) 
   document.getElementById("container").className = "container ie";

然后按照上面列表中的说明调整 CSS:

td.middle 
    width:500px;


.content 
    margin: auto;
    border: 2px solid yellow;
    zoom: 0.8;


.ie .content 
    width:125%;

此解决方案在 IE 和 Chrome/Firefox 上显示“相似”结果。

【讨论】:

【参考方案2】:

你需要使用display:table-cell;来类.content

这是更新后的小提琴:

.container 
  background-color: #ddd;


.border 
  background-color: blue;
  width: 10px;


.content 
  margin: auto;
  width: 500px;
  border: 2px solid yellow;
  zoom: 0.8;
  display: table-cell;


zoom: 0.5;
<table class="container">
  <tr>
    <td class="border">
    </td>
    <td align="center">
      <div class="content">
        This is a test
      </div>
    </td>
    <td class="border">
    </td>
  </tr>
</table>

【讨论】:

【参考方案3】:

您需要做的就是对 .container 应用缩放:

.container 
    zoom: 0.8

这是 JSFiddle:http://jsfiddle.net/Z3wbN/12/

【讨论】:

好吧..事实上,这只是将整个块缩小到其原始大小的 80%,而不影响问题......所以我不认为这是一个解决方案..

以上是关于表格单元格内的 CSS 缩放和 div 对齐的主要内容,如果未能解决你的问题,请参考以下文章

如何在表格单元格内垂直对齐 div?

HTML CSS - 在表格单元格中心缩放 div,如弹出窗口

如何在表格单元格的垂直中心对齐 CSS 箭头?

div表格单元格垂直对齐不起作用

excel怎么居中单元格

excel单元格文字居中,是那种上下左右都居中的方式