首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过选择子对象将样式应用于父对象

问通过选择子对象将样式应用于父对象
EN

Stack Overflow用户
提问于 2011-05-28 02:25:04
回答 5查看 1.2K关注 0票数 0

似乎有些浏览器(至少是Chrome浏览器)会在嵌套在锚标签内的图片下加部分下划线,如下所示:

代码语言:javascript
复制
<a href="#"><img src="/foo.jpg" /></a>

所以我正在寻找一种方法来添加text-decoration: none;到任何包含img标签的锚标签中。我的第一个想法是:

代码语言:javascript
复制
a img {
    text-decoration: none;
}

当然这是行不通的,因为样式应用于img标记,而不是锚。那么,有没有一个选择器可以用来将文本装饰样式应用于任何具有img子级的锚定标记?

编辑:我的HTML通常如下所示:

代码语言:javascript
复制
<a href="#">
    <img src="/foo.jpg" />
</a>

我对元素进行空格和制表符的方式是在锚标签和图像标签之间添加额外的空格。下划线的是那个空格。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-05-28 11:19:44

如果您反对向这个<a>标记添加一个类(这是一个简单的解决方案),那么您的下一个最好的解决方案就是删除<a>标记上的文本装饰,并将您希望在内联元素中添加下划线的文本换行。如下所示:

对于图像:

代码语言:javascript
复制
<a href="#">
  <img src="/foo.jpg" alt="etc" />
</a>

对于文本:

代码语言:javascript
复制
<a href="#">
  <span>Text that you probably want underlined</span>
</a>

合并:

代码语言:javascript
复制
<a href="#">
  <img src="/foo.jpg" alt="etc" /> <span>Text that you probably want underlined</span>
</a>

CSS:

代码语言:javascript
复制
a { text-decoration: none; }
a:hover span { text-decoration: underline; }
票数 3
EN

Stack Overflow用户

发布于 2011-05-28 02:34:05

不幸的是,目前还不能仅使用CSS来选择元素的父元素。

您需要求助于javascript或jQuery。

就我个人而言,我会在jQuery中做一些事情,比如

代码语言:javascript
复制
 $('a>img').parent().addClass('noTextDecoration');

然后在css中具有以下内容:

代码语言:javascript
复制
 a.noTextDecoration {test-decoration:none;}
票数 1
EN

Stack Overflow用户

发布于 2011-05-28 02:29:44

我只是使用

代码语言:javascript
复制
img {
    border:none;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6156247

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档