javascript - 只有在 Safari 中悬停后,垂直对齐的文本才不会立即正确格式化

标签 javascript jquery html css html-table

我正在使用 jQuery 向 HTML 表格添加元素,如下所示:

var tr = '<tr class="row">' +
    '<td><p class="vertical-text">hello</p></td>' +
    '<td><img src="https://dummyimage.com/200" /></td>' +
    '</tr>';

$('#tableX').append(tr);
.vertical-text {
    padding-right: 5px;
    writing-mode: vertical-rl;
    text-orientation: upright;
}

#tableX tr.row:hover {
    border: 1px solid grey;
}

table {
    display: block;
    width: 100%;
    border-collapse: collapse;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table id="tableX" align="center">
    <tr>
        <th>Name</th>
        <th>image</th>
    </tr>
</table>

当打开 HTML 文件时,垂直文本没有立即正确对齐,但是当悬停在该行时,它会改变它的样式。
当省略 #tableX tr.row:hover 规则时,它工作正常!

这是一个扩展示例:https://jsfiddle.net/2cdpf28s/2/

编辑

我发现这只是 Safari 中的一个错误,它只会在使用 :hover 时发生,有什么想法吗?

最佳答案

这段代码有两个问题。有一个不需要的报价"在 td 此处 '<tr> <td"> .

其次你需要添加一个#在这种情况下,选择器引用 DOM 元素的 ID(tableX 中的 $('tableX').append(tr);)。

var tr = '<tr> <td><p class="vertical-text">' + "test" + '</p></td> </tr>';
$('#tableX').append(tr);
.vertical-text {
  padding-right: 5px;
  writing-mode: vertical-rl;
  text-orientation: upright;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table id='tableX' align="center">
  <tr>
    <th>Name</th>
  </tr>
</table>

关于javascript - 只有在 Safari 中悬停后,垂直对齐的文本才不会立即正确格式化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45953063/

相关文章:

javascript - 设置格式化值中断功能

jquery - 列出一条记录自动完成

css - :hover activates when it's not supposed to

jquery - 如何使用 jquery 在 html 页面中插入带有图标(红色、绿色和蓝色)的表格

javascript - 如何正确使用Javascript "export"和 "import"函数?

javascript - 使用变量分配函数参数?

javascript - 如何简化多个 Javascript IF 语句?

javascript - 遍历和替换类

javascript - jQuery:如果所有 child 都有相同的类(class)

html - WebKit 中的水平网页