HTML+CSS入门 巧用target 选择器,打造没有 JS 的 UI 效果
沉沙 2018-06-15 来源 : 阅读 1351 评论 0

摘要:CSS 伪类选择器 :target 是文档内部链接,通过链接元素的 href 属性指定页面某部分,然后选择和为目标元素添加样式的。希望阅读本篇文章以后大家有所收获,帮助大家对HTML+CSS的理解更加深入。

除了链接到新页面,链接元素(<a> 标签)还可以引用到某章节、片段或其它同页面元素,而这几类链接普遍运用于同一页面的导航。

CSS 伪类选择器 :target 是文档内部链接,通过链接元素的 href 属性指定页面某部分,然后选择和为目标元素添加样式的。例如,如果你有一个锚点标签是链接到一篇文章的“深度阅读”部分…

<a href="#further-reading" title="Further reading resources" />
 
<!– … –>
 
<section id="further-resources" >
 
<!— … —>
 
</section>

   

…点击锚点链接后,你可以使用 :target 选择器强调目标元素,以引导阅读者眼球。该高亮技术是众所周知的褪黄技术,并在 37 Signals 首次使用。


#further-resources:target {
 
animation: highlight .8s ease-out;
 
}
 
@keyframes highlight {
 
0% { background-color: #FFFF66; }
 
100% { background-color: #FFFFFF; }
 
}

   

这技术要求你使用 CSS animation 在短暂时间内显示颜色,然后再次移除颜色 – 要点是高亮能足以引导用户注意到这里。看看 展示了这项技术运作的在线案例。

上面案例给链接的目标元素应用了短暂的样式。但如果你应用更持久的样式,你可以创建缩放元素、改变它们可见度等等。

在网站上运用这项技术,当浏览者想搜素文章时,搜索域覆盖整个页面。作为主导航的一部分,有一个链接是让搜索域覆盖整个页面 – 一个包含着搜索输入框的 <div>标签。

<a href="#search">Search</a>
 
<!– … –>
 
<div id="search">
 
<a href="#">Close</a>
 
<h4>Search articles archive.</h4>
 
<!– … –>
 
</div>

   

这个搜索域初始时是通过使用 opacity : 0; 进行隐藏的。并通过 position : fixed; 让其相对于视口进行定位。为了确保它不会挡住它下面其余页面的鼠标事件,设置 pointer-events 为 none.


#search-overlay {
 
position: fixed;
 
top: 1em;
 
bottom: 1em;
 
right: 1em;
 
left: 1em;
 
/* … */
 
opacity: 0;
 
transition: opacity .3s ease-in-out;
 
pointer-events: none;
 
}

   

使用 :target 选择器后,一旦搜索锚点被点击,覆盖域就会显示,并将 pointer-event 再次设置为 auto。 为了让覆盖域显示过程更流畅,可通过 CSS3 的 transition 创建一个淡入淡出的效果。


#search-overlay:target {
 
opacity: 1;
 
pointer-events: auto;
 
}

   

搜索域淡入。任务完成一半 – 当用户再次请求时,我们需要确保它能淡出。

该覆盖域容器需包含其它允许我们回到主页面的链接。因此,我们打算给 body 或 html 元素一个 ID,并有一个关闭按钮链接到该 ID —这也能达到目的。然而,没有必要这样做。因为链接到非特定片段,只需将 # 作为它的值。实际上,无须为页面上的 URL 添加任何片段标识符,就能链接到主页面。

一旦关闭按钮链接被点击,我们希望搜索域淡出,所以我们为 #search-overlay:target 再次添加 transition ,并确保 opacity 能过渡到 0。  当然,如果想在用户关闭它时,让它立刻消失,你可以忽略这一步。

  
#search-overlay:target {
 
opacity: 1;
 
pointer-events: auto;
 
transition: opacity .3s ease-in-out;
 
}

   

你可以为搜索域添加变形动画,进一步增强效果。例如在淡入时伴随着放大效果 – 类似于(是的,你应该猜到了) Lightbox  效果。搜索域中不是搜索表单,而是一张图像的话,当你点击它的缩略图时,它会伴随能放大效果进入你的视线。Manoela Ilic 有一个很细致完整的图片 画廊 ,它就是基于这个效果做的。并且在它后面有一个教程,解释代码的运行。

Christian Heilmann 也写了一个关于如何使用 :target 选择器创建简易图片画廊的 帖子,并值得我们学习。

只使用 CSS 实现的图像画廊、模拟框 和 off-canvas 导航 都是功能齐全的 UI 组件案例。通过利用 :target 选择器的优势,它们只需使用 CSS 就可以完成。


 本文由职坐标整理发布,更多相关内容,请关注职坐标WEB前端HTML/CSS频道!

本文由 @沉沙 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程