des*_*est 37 css css-selectors css3
这是我的HTML页面的问题图像.文本菜单位于右对齐的div内,并具有1.2em字母间距.这有伪选择器吗?我不想诉诸相对定位.
我希望文本菜单能够结束块结束的位置.

我已经标记了最佳答案,但无论CodeBlock如何,我都被要求提供标记.这里是.
<div class="sidebar">
<span class="menuheader">MENU</span>
<ul>
<li><a href="#content">Content</a></li>
<li><a href="#attachments">Attachments</a></li>
<li><a href="#subpages">Sub-pages</a></li>
<li><a href="#newsubpage">New sub-page</a></li>
</a></ul>
</div>
.sidebar{
color: rgb(150,93,101);
display: inline;
line-height: 1.3em;
position: absolute;
top: 138px;
width: 218px;
}
.menuheader{
letter-spacing: 1.1em;
margin: -1.2em;
text-align: right;
}
Run Code Online (Sandbox Code Playgroud)
Kar*_*oll 41
您可以将元素设置为具有-1.2em的右边距,这将抵消字母间距.
例如
.menu-header-selector {
display:block;
letter-spacing:1.2em;
margin-right:-1.2em;
text-align:right;
}
Run Code Online (Sandbox Code Playgroud)
要回答关于伪选择器的问题,据我所知,没有每个字符的伪选择器.(编辑:Scratch,有:First-Letter选择器,Jonas G. Drange指出).
编辑:你可以在这里找到一个基本的样本:http://jsfiddle.net/teUxQ/
显然是一个非常古老的问题,但当时涉及您的具体示例的 CSS 有效。
它涉及将方向重置为相反的方向,为您的内联元素提供格式上下文,并设置一个与字母间距相等的负文本缩进。
演示如下:
.sidebar {
color: rgb(150, 93, 101);
line-height: 1.3em;
width: 218px;
border:solid;
text-align:right;
}
.menuheader {
letter-spacing: 1.1em;
direction:rtl;
display:inline-block;
text-indent:-1.1em;
background:gold
}Run Code Online (Sandbox Code Playgroud)
<div class="sidebar">
<span class="menuheader">MENU</span>
<ul>
<li><a href="#content">Content</a></li>
<li><a href="#attachments">Attachments</a></li>
<li><a href="#subpages">Sub-pages</a></li>
<li><a href="#newsubpage">New sub-page</a></li>
</ul>
</div>Run Code Online (Sandbox Code Playgroud)
您可以在元素之后添加 :after 并将负边距设置为等于字母间距
.menuheader {
letter-spacing: 1.1em;
}
.menuheader:after {
content:" ";
margin-left: -1.1em;
}
Run Code Online (Sandbox Code Playgroud)
在 Chrome、Firefox 和 Edge 上测试