制作手风琴效果时发现新大陆,好吧,其实是一个bug

手风琴效果代码:

  <!DOCTYPE html>
  <html>
      <head>
          <meta charset="utf-8" />
          <title></title>
          <style>
              body,div{margin: 0;}
              .box{height: 100px;}
              .item{
                  float: left;width: 25%;
                  height: 100%;
                  transition: width 10s;
                  }
              .item:nth-of-type(1){background-color: red;}
              .item:nth-of-type(2){background-color: yellow;}
              .item:nth-of-type(3){background-color: pink;}
              .item:nth-of-type(4){background-color: orange;}
              .box:hover div{width: calc((100% - 40%) / 3);}
              .box .item:hover{width: 40%;}
          </style>
      </head>
      <body>
          <div class="box">
              <div class="item"></div>
              <div class="item"></div>
              <div class="item"></div>
              <div class="item"></div>
          </div>
      </body>
  </html>

  去掉红色框后,手风琴效果出错(原因在于 hover选择器分别作用父子元素的同一个属性时,当鼠标在子元素上时,父元素设置的属性值也生效了,最终以父元素的属性值的效果体现出来)

  

  再看一个例子(鼠标先移到box再移到box2,看到呈现的效果为 “#box:hover div”  选择器设置的属性值的 效果):

  <!DOCTYPE html>
  <html>
      <head>
          <meta charset="utf-8" />
          <title></title>
          <style>
              #box{
                  width: 200px;
                  height: 200px;
                  background-color: aqua;
              }
              #box:hover div{
                  width: 100px;
                  background-color: red;
              }
              #box2:hover{
                  width: 50px;
                 background-color: blue;
              }
          </style>
      </head>
      <body>
          <div id="box">
              <div id="box2">dfdfdfd</div>
          </div>
      </body>
  </html>
  先测试以上代码,再在下图中的红色箭头处加上#box 进行测试(鼠标先移到box再移到box2),结果 可想而知

  

原文地址:https://www.cnblogs.com/xiaohaodeboke/p/11746268.html

时间: 2024-08-01 13:26:37

制作手风琴效果时发现新大陆,好吧,其实是一个bug的相关文章

发现C++Builder 2010集合类的一个BUG

今天用C++Builder 2010写一段小代码,用到了集合类,可集合运算结果怎么也不对,排除了其它原因,最后确定应该是集合类源代码的问题,下面是一段集合类的测试代码: enum TTest{tt0, tt15 = 15, tt16 = 16}; typedef Set<TTest, tt0, tt16> TTests; void __fastcall TForm1::Button1Click(TObject *Sender) { TTests t1 = TTests() << t

JS制作图片手风琴效果

使用JS写出 图片的手风琴效果 第一种:浮动版本的手风琴效果,并不推荐,因为会使图片出现抖动的现象 样式则是div中包含ul <script src="animate.js"></script> <script> //1. 找出页面中需要的对象 var box = document.getElementById("box"); var ul = box.children[0]; var lis = ul.children; //2

超简单手风琴效果制作

手风琴最终效果如下: 要实现以上效果非常简单,无需插件的 Step.1 html结构创建 <div id="firstpane" class="menu_list"> <p class="menu_head">Header-1</p> <div class="menu_body"> <a href="#">Link-1</a> <

炫酷的手风琴效果

你一定用过书签,也一定给你的书本加过书签,那么你见过书签式的导航吗? 你一定见过手风琴,也一定知道弹奏手风琴时的它的外形变化,那么你见过手风琴式的导航吗? 如果没有,请往下看: 前面的话: 这篇博文先通过Javascript做一个简单的手风琴效果,让大家对手风琴效果有一定的了解:紧接着,我们换jquery做类似的手风琴效果.前面的两个例子都很简单,接下来要放大招了,我想用JQ或是原生的JS去做类似淘宝网中用到的手风琴效果.继续回到书签问题,既然JQ和JS都能实现那么炫酷的效果,我们用CSS3能不

【JQuery】jQuery自制简易手风琴效果(附实现原理)

手风琴效果经常会用在网页左侧的导航栏,当导航内容比较多时使用手风琴的展示方式更有利于信息的传递和排版,下面就分享一个自己制作的简易手风琴效果,没有用图片,背景颜色也是随意设定的,在实际项目中大家可适当修改. 效果图: 实现原理: 1.当鼠标点击span标签(即一级导航)时,先判断子目录li是否已经展开(此处使用一个on类来做标记): 2.如果是,则收缩当前的li,移出on类标记,修改span右边的提示符为加号: 3.如果不是,则展开当前的li,增加on类标记,修改span右边的提示符为减号. 源

纯css3实现美化复选框和手风琴效果(详细)

关键技术点和原理: 原理就是把 checkbox或 radio 给隐藏掉   ,然后给选框 绑定一个label标签. 然后用label标签作为容器,在里面放一个:before或一个after 用before模拟选框的框,用after来模拟选框的填充 通过 .magic-checkbox:checked + label:after {/*选框被选中时 显示after填充*/ display: block; } 来确定是否选中复选框,如果checked就把after的显示. 先贴出html的代码 <

CSS3实现手风琴效果-------Day88

所谓的手风琴效果,就是像手风琴一样拉开关上,至于手风琴啥样,貌似那是我好久之前的回忆了. 不扯那些没用的,说说这个坑人的手风琴效果,先来看下效果图: 这个效果不错吧,也比较常用吧,可怜的我最开始的时候以为自己可以做到这个效果,就用display:none/block写了一排的div,你别说,还真出来那个感觉啦,哈哈,这里当然不会这么做,但是在我看明白之后,发现是一样简单到要吐血,这样的应用当初自己怎么就想不到. 实现过程中的第一个让我没想到,却感觉确实这样才对的地方: <div id="h

jQuery插件实例四:手风琴效果[无动画版]

手风琴效果就是内容的折叠与打开,在这个插件中,使用了三种数据来源:1.直接写在DOM结构中:2.将数据写在配置项中:3.从Ajax()中获取数据.在这一版中,各项的切换没有添加动画效果,在下一版中会是有动画效果的. 在这个插件中,CSS和JS的配置非常重要,需要特别注意.另外,加个思考,请先看完后再想这个问题:当点击其中某项时,给width直接添加animate是否合适,当快速在其上移动时,如何保证效果? 效果图预览 插件JS accordionB.js 1 ; 2 (function ($,

手风琴效果

功能描述: 鼠标移到每一个图片上,显示当前图片,其余图片变成宽度为原来的6%,同时图片透明度为1,0.5s后显示图片说明.鼠标移除后,每张照片宽度变为16%的宽度.其中图片说明,没有设计样式,有兴趣的可以自己动手. html代码: <body> <h1>手风琴效果</h1> <div id="content"> <ul> <li> <a href="#"> <h2>图片名