我无法弄清楚如何定位我正在使用的超级烦人的边缘文件。
如何定位h1
标记之后的cite
?
由于cite
包含在p
标记内,我不知道如何遍历以定位它。
cite
(技术上p
)之间的差距太大,但在“非cite
”段落上,这很好。
TL:DR -
检查段落中是否有cite
标记,如果有,则将h1
标记上的填充顶部更改为更少。如果段落中没有cite
,请保持不变。
http://codepen.io/anon/pen/Jksam
HTML
<link href='http://fonts.googleapis.com/css?family=Lato:400,900' rel='stylesheet' type='text/css'>
<link href='http://fonts.googleapis.com/css?family=Gentium+Book+Basic:400,400italic,700,700italic' rel='stylesheet' type='text/css'>
<div class="post">
<blockquote>
<p>
“Work is the curse of the drinking classes.”
</p>
</blockquote>
<p>
<cite>
Oscar Wilde
</cite>
</p>
<h1>
This is a H1
</h1>
<p>
Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
</p>
<h1>
This is a H1
</h1>
</div>
CSS
.post {
width: 50%;
padding-left: 25%;
padding-top: 3rem;
}
h1 {
color: #333332;
font-family: 'Lato', sans-serif;
padding-top: 1.5rem;
padding-bottom: 1rem;
font-weight: 900;
font-size: 3.3rem;
}
p + h1 {
padding-top: 4rem;
}
blockquote {
border-left: 4px solid #ED5565;
margin-left: -24px;
margin-top: -1px;
}
cite {
color: #b3b3b1;
font-family: 'Lato', sans-serif;
font-weight: 400;
font-size: 0.8rem;
position: relative;
top: -15px;
padding: 0;
margin: 0;
}
cite:before {
content: "- ";
}
blockquote > p {
padding: 1em;
margin: 0;
}
p {
color: #333332;
font-family: 'Gentium Book Basic', serif;
font-weight: 400;
font-size: 1.5rem;
line-height: 1.8rem;
padding-bottom: 1rem;
padding-top: 1rem;
}
答案 0 :(得分:3)
您可以使用.has()
方法或:has
选择器:
$('p').has('cite').next('h1').css({'padding-top': 'value'});
假设应选择所选h1
的所有下一个p
兄弟姐妹:
$('p').has('cite').nextAll('h1').css({'padding-top': 'value'});
答案 1 :(得分:1)
另一种方法是从引用标记开始,然后使用.closest()转到p标记 - 然后获取下一个h1元素
$('cite').closest('p').next('h1').css('padding-top','50px')