我至少知道以下几种可能使用的不同方法:
- 默认字体中的Unicode字符 - 从CSS加载的字体中的Unicode字符 - 内联SVG - 内联PNG
这些方法中哪个最可靠/可行? 是否有其他更好的技术? 是否有任何需要注意的注意事项?
我来晚了,但是看看我在CodePen上发现的东西!链接
a[target="_blank"]::after {
content: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAQElEQVR42qXKwQkAIAxDUUdxtO6/RBQkQZvSi8I/pL4BoGw/XPkh4XigPmsUgh0626AjRsgxHTkUThsG2T/sIlzdTsp52kSS1wAAAABJRU5ErkJggg==);
margin: 0 3px 0 5px;
}
<a class="external" href="https://example.org" target="_blank">external link</a>
a[target="_blank"]:after
中的单冒号可以在 Safari 11.1 和 Firefox 61 中使用。哪个浏览器需要双冒号?请随意编辑答案。谢谢。 - András Aszódi对于许多Unicode字符,您将需要使用以下字体(至少适用于Windows,请在能够测试Linux和Mac的情况下评论):
a:link {font-family: 'Segoe UI Symbol' !important;}
您也可以应用CSS选择器来使用target
属性,如下所示:
a[target='blank']
a[target]
请记住,浏览器对于 a
选择器及 a:link
/ a:visited
的行为有些奇怪,所以一定要牢记这一点进行测试。
Unicode 中的 'Two Joined Squares' 字符:
http://www.fileformat.info/info/unicode/char/29c9/index.htm
CSS
a[target='_blank']::after {content: '\29C9';}
支持
Mac OS X,Yosemite: 2种字体,Apple Symbol
和STIXGeneral
Unicode中的'带右上象限的白色正方形'字符:
http://www.fileformat.info/info/unicode/char/25F3/index.htm
CSS
a[target='_blank']::after {content: '\25F3';}
支持
Mac OS X,Yosemite:3种字体,Apple Symbol
,STIXGeneral
,Menlo
。
Unicode '右上方带阴影的白色正方形' 字符:
http://www.fileformat.info/info/unicode/char/2750/index.htm
CSS
a[target='_blank']::after {content: '\2750';}
支持
Mac OS X 10.10 Yosemite有三种字体:Arial Unicode MS
、Menlo
和Zapf Dingbats
。
<span style="color: purple">↗</span>
即可。 - TrophyGeek另外还有一个U+1F5D7 OVERLAP
, 这是在Unicode 7.0(2014年6月)中添加的。
它的注释是“重叠偏移窗口”。
HTML实体:🗗
我会选择这样的东西:
正如其他人所提到的那样,你选择的图标被维基百科和其他网站广泛用于表示链接到外部站点。但这更多是个人偏好,而不是网页标准。
alt
属性应该用于描述图像,因此在您的示例中可以这样写:alt="新窗口图标"
。话虽如此,title
属性将在悬停时显示工具提示,这在可访问性和可用性方面非常好:title="链接在新选项卡中打开"
,尽管我现在更喜欢说“新选项卡”而不是“新窗口”。请查看我的完整答案 https://dev59.com/7XI-5IYBdhLWcg3wW24L#51700279 - Ricardo Zea并不存在一个既定的标准图标。
例如,您选择的图标与维基百科中用于标记指向外部网站(不属于维基百科)的链接所使用的图标相似。您可以在自己的网站上使用它,并在您自己的页面中建立一种约定。只要确保始终如一:所有使用该图标标记的链接必须打开新页面,并且所有未标记为此图标的链接应在同一页面中打开。如果您有一个稳定的用户群体,他们将有机会习惯于您的约定,这样您就可以提高可访问性。如果您的网站主要由一次性访问者访问,则只会添加视觉杂乱。
em
作为所有尺寸的单位:
a[target="_blank"]::after {
content: "" / "opens in new tab/window";
width: 1em;
height: 1em;
margin: 0 0.05em 0 0.1em;
background: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2Ij48cGF0aCBkPSJNOSAyTDkgMyAxMi4zIDMgNiA5LjMgNi43IDEwIDEzIDMuNyAxMyA3IDE0IDcgMTQgMlpNNCA0QzIuOSA0IDIgNC45IDIgNkwyIDEyQzIgMTMuMSAyLjkgMTQgNCAxNEwxMCAxNEMxMS4xIDE0IDEyIDEzLjEgMTIgMTJMMTIgNyAxMSA4IDExIDEyQzExIDEyLjYgMTAuNiAxMyAxMCAxM0w0IDEzQzMuNCAxMyAzIDEyLjYgMyAxMkwzIDZDMyA1LjQgMy40IDUgNCA1TDggNSA5IDRaIi8+PC9zdmc+) no-repeat;
background-size: contain;
display: inline-block;
vertical-align: text-bottom;
}
An <a href="" target="_blank">external link</a> is super pretty! <br />
<span style="font-size: 2em;">In <a href="" target="_blank">all</a> sizes!</span><br />
<span style="font-size: 3em;">Even <a href="" target="_blank">super large</a> ones!</span><br />
<span style="font-size: 0.5em;">And in <a href="" target="_blank">super tiny ones</a> too!</span><br />
a[target="_blank"]:not(.no-external-link-icon)::after
是很有用的,这样你就可以通过向 <a>
元素添加类 no-external-link-icon
来禁用图标显示。 - paul我能找到的最接近的是NORTH WEST ARROW TO CORNER ⇱ 和SOUTH EAST ARROW TO CORNER ⇲--但创建这些图标的人没有做NORTH EAST ARROW TO CORNER。
http://www.fileformat.info/info/unicode/category/So/list.htm
.newWindow {
display:inline-block;
margin-left:5px;
position: relative;
border: 1px solid;
width: 8px;
height: 8px;
}
.newWindow:after {
position: absolute;
top:-8px;
right:-2px;
font-size:0.8em;
content:"\1f855";
}
.newWindow:before {
position: absolute;
top: -3px;
right: -3px;
content: " ";
border: 4px solid white;
}
a[target="_blank"] {
position: relative;
}
a[target="_blank"]:after {
position: absolute;
top: 3px;
right: -15px;
content: "\1f855";
font-size: 13px;
color: black;
line-height: 3px;
height: 5px;
width: 5px;
border-right: 2px solid white;
border-top: 2px solid white;
}
a[target="_blank"]:before {
position: absolute;
top: 4px;
right: -15px;
content: " ";
border: 1px solid black;
width: 8px;
height: 8px;
}
<a href="#">Link followed by span</a><span class="newWindow"></span>
<br/>
<a href="#" target="_blank">Just link</a>
a[target="_blank"]::after
。您的解决方案需要在每个需要它的链接的HTML中包含div。其他解决方案不需要更改HTML。它只会将符号添加到指定了target属性的链接中。 - awe⧉ ⧉ ⧉ U+29C9 TWO JOINED SQUARES
❐ ❐ ❐ U+2750 UPPER RIGHT DROP-SHADOWED WHITE SQUARE
⍈ ⍈ ⍈ U+2348 APL FUNCTIONAL SYMBOL QUAD RIGHTWARDS ARROW
⎘ ⎘ ⎘ U+2398 NEXT PAGE