ul {
margin: 0.75em 0;
padding: 0 1em;
list-style: none;
}
li::before {
content: "";
border-color: transparent #111;
border-style: solid;
border-width: 0.35em 0 0.35em 0.45em;
display: block;
height: 0;
width: 0;
left: -1em;
top: 0.9em;
position: relative;
}
这是一种相当古老的方法。如今,您可能想知道使用::marker
是多么容易。以下是两种方法
技巧非常令人印象深刻,…
但我非常佩服这些评论。假设 Blogspot 平台可以像这样…
现在……如何让它们在菜单/列表项展开时向下旋转?最好不要使用 jQuery……仅使用 CSS。
我看到一个例子,您正在谈论,在这里 http://www.artlebedev.ru/tools/technogrette/html/treeview/
在您的情况下,您可以尝试隐藏相关的 ul 内容,并在悬停时显示它(使用 css),并使用以下方法旋转三角形
也许过渡也会有帮助,我不知道。
以下是我快速进行的一些调整……我尝试了一些方法,但找不到一种有效的方式来为悬停开始和结束时的转换设置动画。我想,如果您使用 javascript,您就可以做这样的事情,但这段代码是纯 css。
与之搭配
很棒的技巧。但是,IE 7 不会显示三角形项目符号,有没有什么变通方法(黑客)来解决这个问题?
Javi:IE7 不支持 :before 和 :after 伪元素。
我本来想建议使用 Selectivizr 脚本,它将许多 CSS3 选择器功能添加到 IE 6-8,但它也不支持这些伪元素。显然,这是因为 :before 和 :after 会导致 DOM 发生变化,这可能会导致 Selectivizr 的其他一些功能失败。
因此,除非其他人有巧妙的变通方法,否则您唯一的选择可能是通过条件注释为 IE7 提供单独的规则,也许可以使用背景图像作为列表标记。
以下是一种有效的方法(尽管有点长)
CSS
HTML
在 Firefox(18.0.1)中,这会在三角形周围留下难看的深灰色轮廓/抗锯齿。当您使用彩色项目符号(而不是此示例中的黑色)时,这更加明显。在 Chrome 中,它看起来很好。
我找到了一个解决方案,那就是对边框背景颜色使用 RGBA 值,RGB 更接近背景颜色。透明度“不是真正的透明”涉及对角线和抗锯齿的地方。
已修复(在白色背景上):border-color: rgba(255,255,255,0) #e45900;
这是一个非常有用的教程。我感兴趣的是只在我的下拉菜单实际上存在的地方显示三角形。我不知道如何在没有子列表的列表项上隐藏它们。不过我已经弄清楚如何隐藏子列表本身上的三角形。下面粘贴了额外的代码
sidebar ul li ul li:before{
border: none;
}
我找到了解决方法。只需要创建一个新类来隐藏箭头。
ul li.no_carrot:before{
border-width: 0;
}
抱歉在一个非常旧的帖子中插话,但我认为既然我发现了这篇文章,其他人也可能发现它,并且可能认为我的解决方案很有用。
li:before {
content: "\25B6 \ "; /* ISO 10646 字符 */
}
您可以使用不同的 ASCII 代码来实现您想要的结果。就这样。
这正是我希望验证的内容。感谢您的代码片段!
这完美地解决了问题,正是我一直在寻找的。谢谢!
不错。
这种类型的解决方案会破坏 UL 的 start 属性,我认为除了使用背景图像之外,没有理想的纯 CSS 方法来解决这个问题。
我创建了一个 JSBin 演示,其中包含您在此处发布的内容:http://jsbin.com/xusipig/1/edit?css,output
有帮助,谢谢 ^_^
谢谢,但不知何故,当我使用这个技巧时,行高增加了几乎一倍,与普通项目符号相比……我无法降低它……您可以在这里看到与编号列表的比较:https://www.plarecon.com/implants-biomaterials-plastic-surgery/
看起来您能够减小尺寸!至少当我检查时是这样的。我想该元素从级联中的其他地方继承了一个较大的行高,这意味着需要在此规则集中明确定义它。