Html 如何将某些CSS添加到中间元素?
我有这样的想法:Html 如何将某些CSS添加到中间元素?,html,css,css-selectors,Html,Css,Css Selectors,我有这样的想法: <html> <head> <style> div { padding: 10px; border: solid 2px; border-radius: 10px; display: inline-block; } div + div { border-radius:
<html>
<head>
<style>
div {
padding: 10px;
border: solid 2px;
border-radius: 10px;
display: inline-block;
}
div + div {
border-radius: 0px;
}
</style>
</head>
<body>
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
</body>
</html>
div {
padding: 10px;
border: solid 2px;
border-radius: 10px 0 0 10px;
display: inline-block;
}
div + div {
border-radius: 0;
}
div + div:last-of-type {
border-radius: 0 10px 10px 0;
}
div {
padding: 10px;
border: solid 2px;
display: inline-block;
}
div:first-of-type {
border-radius: 10px 0 0 10px;
}
div:last-of-type {
border-radius: 0 10px 10px 0;
}
div{
填充:10px;
边框:实心2px;
边界半径:10px;
显示:内联块;
}
div+div{
边界半径:0px;
}
1.
2.
3.
4.
这是输出:
但我正试图做到这一点:
请注意,没有任何特定的父项具有特殊的ID
或class
或甚至标记类型
;然后我不能使用第一个孩子
和最后一个孩子
选择器
而且,我不能(也不想)为中间元素或角点使用特殊类。我只是想知道是否有任何方法可以在不使用类的情况下,在无限数量的相同元素中彼此靠近
提前谢谢。是的,您可以这样做:
<html>
<head>
<style>
div {
padding: 10px;
border: solid 2px;
border-radius: 10px;
display: inline-block;
}
div + div {
border-radius: 0px;
}
</style>
</head>
<body>
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
</body>
</html>
div {
padding: 10px;
border: solid 2px;
border-radius: 10px 0 0 10px;
display: inline-block;
}
div + div {
border-radius: 0;
}
div + div:last-of-type {
border-radius: 0 10px 10px 0;
}
div {
padding: 10px;
border: solid 2px;
display: inline-block;
}
div:first-of-type {
border-radius: 10px 0 0 10px;
}
div:last-of-type {
border-radius: 0 10px 10px 0;
}
或者,根据具体情况,可能更简单,如下所示:
<html>
<head>
<style>
div {
padding: 10px;
border: solid 2px;
border-radius: 10px;
display: inline-block;
}
div + div {
border-radius: 0px;
}
</style>
</head>
<body>
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
</body>
</html>
div {
padding: 10px;
border: solid 2px;
border-radius: 10px 0 0 10px;
display: inline-block;
}
div + div {
border-radius: 0;
}
div + div:last-of-type {
border-radius: 0 10px 10px 0;
}
div {
padding: 10px;
border: solid 2px;
display: inline-block;
}
div:first-of-type {
border-radius: 10px 0 0 10px;
}
div:last-of-type {
border-radius: 0 10px 10px 0;
}
一种只使用
+
选择器而不需要nth-*
选择器的简陋方法,它可以处理任何具有相同类型的连续元素集
您可能需要根据情况调整伪元素中使用的不同值:
div{
填充:10px;
边框:实心2px;
边界半径:10px;
显示:内联块;
位置:相对位置;
}
div+div:之前,
div+div:之后{
内容:“;
位置:绝对位置;
顶部:-2px;
底部:-2px;
宽度:8px;
边框:2倍实心;
背景:#fff;
}
div+div:之前{
左边框:0;
右:计算(100%+4px);
}
div+div:之后{
右边界:0;
左:-2px;
}
1
2.
3.
4.
--
1.
2.
3.
4.
--
1.
2.
---
1
确定您将拥有一个容器,还是会有其他元素作为同级元素?不管结构是随机的,肯定有一些特殊性。你能改变HTML吗?在之间添加元素?添加任何容器?那么我就不能使用第一个孩子和最后一个孩子选择器。
-->不需要任何类、标记和ID来使用它们,所以无论您选择什么HTML,都可以使用它们have@TemaniAfif是的,将有其他元素(其他类型)作为同级元素。您可以展示一个具有所有约束的示例吗?如果他不能使用最后一个子元素,我怀疑他能用最后一种。。。如果我们可以,那么你可以首先考虑类型,我相信他认为他不能,因为它是一个必要的父母。另外,我不认为还有其他简单的方法。你仍然可以将这个div+div:last of type
简化为这个div:last of type
,使它与两个元素一起工作,除非它不工作。这个答案不是只与一个div一起工作。这是一种修复一个div的方法吗?谢谢你的好解决方案。