css伪类hover新的应用技巧思考+fixed屏幕居中
2017-12-04 15:29
549 查看
1.写在前面
之前的理解是hover伪类是写在某个元素上,鼠标移到上面就可以修改此元素的样式,可不可以改变另一个非hover元素样式呢?在使用less的时候,可以这么写:
含义是hover到nav元素时,既改变nav样式又改变另一个任意block元素样式。那么在css里面我们可以这么做:
和普通后代或者派生选择器一样具有伪类的时候同样可以这么使用,含义是out元素hover时候子类in元素的样式改变。
基于这个思路,普通css选择器方式都可以这么用。
2.利用这些做的demo
3.常见的li的hover特效demo(css+少量js)
二.fixed屏幕居中
以上top,left的50%是相对于左上角的,然后使用translate的-50%,是反向移动自身50%,实现了全屏幕中心。
之前的理解是hover伪类是写在某个元素上,鼠标移到上面就可以修改此元素的样式,可不可以改变另一个非hover元素样式呢?在使用less的时候,可以这么写:
.nav:hover{ color:red; .block{ color:blue; } }
含义是hover到nav元素时,既改变nav样式又改变另一个任意block元素样式。那么在css里面我们可以这么做:
<div class='out'> <div class="in">1</div> </div>
.out:hover .in{ color:red; }
和普通后代或者派生选择器一样具有伪类的时候同样可以这么使用,含义是out元素hover时候子类in元素的样式改变。
基于这个思路,普通css选择器方式都可以这么用。
.show_up:hover+.show_down{ background-color: #f00; } //兄弟选择器,同一个父元素下的show_up,show_down,当show_up被hover时show_down的样式改变。
2.利用这些做的demo
<div class="block"> <div class="show_up">upBlock</div> <div class="show_down">DownBlock</div> </div>
.block{ margin: 10px auto; width: 160px; height: 60px; border:1px solid #ff0; text-align: center; line-height: 60px; position: relative; overflow: hidden; } .show_up,.show_down{ width: 100%; height: 60px; transition: all 0.2s ease; } .show_up{ position: absolute; background-color: #ff0; top:-60px; } .block:hover .show_up{ top:0px; }
3.常见的li的hover特效demo(css+少量js)
<div class="sample2"> <ul> <li>1</li> <li>2</li> <li>3</li> <li>4</li> <li>5</li> <li class="line"></li> </ul> </div>
.sample2{ margin: 10px auto; /*border:1px solid #ff0;*/ width: 800px; height: 62px; padding: 0px; } .sample2 ul{ margin: 0px; width: 840px; display: block; padding: 0px; position: relative; } .sample2 ul li{ width:160px; height:60px; display: inline-block; background-color: #ee0; text-align: center; line-height: 60px; list-style-type: none; } .line{ position: absolute; top:-4px; left:0px; height:4px !important; background-color: #00f !important; transition: all 0.2s ease; } .sample2 ul li:hover{ color:#fff; }
var li = document.querySelectorAll('.sample2 ul li'); // console.log(line); var sample2 = document.querySelector('.sample2 ul'); var line = document.querySelector('.line'); sample2.onmouseover = function(e){ // console.log(e.target); for(var i=0;i<li.length-1;i++){ if(li[i]==e.target){ line.style.left = 165*i+'px'; } } }
二.fixed屏幕居中
position: fixed; top: 50%; left: 50%; transform: translate3d(-50%,-50%,0);
以上top,left的50%是相对于左上角的,然后使用translate的-50%,是反向移动自身50%,实现了全屏幕中心。
相关文章推荐
- CSS中2d转换:transition过渡放在:hover伪类中与应用在整个元素中区别
- CSS布局奇淫技巧之--各种居中
- 网页文字应用CSS的一些技巧
- css 相对浏览器动态居中永远保持在屏幕正中
- CSS外级hover改变內级元素的display应用
- CHROME审查元素如何查看hover伪类的CSS?
- 一些css居中的技巧
- 学习笔记---css中伪元素与伪类(迷惑我的:after与:hover)
- CSS布局奇淫技巧之--各种居中
- 超链接标签的CSS伪类link,visited,hover,active
- 自适应屏幕的CSS响应式布局设计技巧总结
- CSS中一些利用伪类、伪元素和相邻元素选择器的技巧
- css水平居中,竖直居中技巧(二)
- CSS笔记-除了a标签外的hover属性的应用
- css居中解决方案及思考
- 链接伪类(:hover)CSS背景图片有闪动BUG的解决方法
- 最新的Javascript和CSS应用技巧荟萃[简介]
- CSS布局奇淫技巧之--各种居中
- div+css在屏幕居中布局
- CSS :hover伪类选择定义和用法