相关疑难解决方法(0)

Safari bug:当使用 JS 删除项目时,first-child 不会更新 display:block

对于默认情况下所有项目都隐藏的项目列表,第一个项目的名称lidisplayof block。问题是,如果第一个元素被删除,这将不会更新,事实上创建了一个应该显示的新的第一个子元素。在 Safari 中,应该显示的新内容li不会显示。

超文本标记语言

<ul class="list">
  <li class="item">1</li>
  <li class="item">2</li>
  <li class="item">3</li>
</ul>
<button>click me </button>
Run Code Online (Sandbox Code Playgroud)

CSS

.list .item { display: none } 
.list .item:first-child { display:block}
Run Code Online (Sandbox Code Playgroud)

JS

$('button').on('click', function(e) {
  $('ul li:first').remove().appendTo($('ul'));
});
Run Code Online (Sandbox Code Playgroud)

请参阅小提琴:http://jsfiddle.net/BFTan/1/

在所有其他浏览器中,单击该按钮将循环浏览项目,但在 Safari 中不会进行任何更新。

javascript css safari css-selectors

2
推荐指数
1
解决办法
4207
查看次数

声明为空的 CSS 选择器 - 浏览器还会搜索吗?

假设样式表中有一些选择器没有样式信息,因此它们实际上是空的(没有样式声明):

.main-menu {}
Run Code Online (Sandbox Code Playgroud)

浏览器还会搜索它们吗?

我的直觉是,这将取决于浏览器,因此“聪明”的程序员会说“如果选择器为空,请不要打扰”,但并非所有浏览器都会有这种开明的实现。快速搜索了一下,没有找到任何内容,想知道这里是否有人知道这方面的事情......

我确信最佳实践是不要使用带有空声明的选择器,因为它们浪费空间和时间,W3 对此有何说明吗?

谢谢!

html css performance

2
推荐指数
1
解决办法
1420
查看次数

标签 统计

css ×2

css-selectors ×1

html ×1

javascript ×1

performance ×1

safari ×1