我正在尝试使用纯CSS来更改悬停时类的宽度。
到目前为止,过渡工作是在更改类方面进行的,但是类.b和.c不会影响到它们之前的类的宽度。将鼠标悬停在.b
上时,我需要上一个类(即.a类)进行收缩我在下面发布了代码,希望有人提供理想情况下仅包含CSS的解决方案。
/* http://meyerweb.com/eric/tools/css/reset/
v2.0 | 20110126
License: none (public domain)
*/
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
margin: 0;
padding: 0;
border: 0;
font-size: 100%;
font: inherit;
vertical-align: baseline;
}
/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
display: block;
}
body {
line-height: 1;
}
ol, ul {
list-style: none;
}
blockquote, q {
quotes: none;
}
blockquote:before, blockquote:after,
q:before, q:after {
content: '';
content: none;
}
table {
border-collapse: collapse;
border-spacing: 0;
}
.column {
float: left;
width: 33.33%;
height:100%;
}
.a{
background-color: #ff0000;
transition: 0.3s;
}
.a:hover{
background-color: #c41333;
width:40%;
}
.a:hover ~ .b, .c{
width:30%;
}
.b{
background-color: #eeeeee;
transition: 0.3s;
}
.b:hover{
background-color: #c41333;
width:40%;
}
.b:hover ~ .a, .c{
width:30%;
}
.c{
background-color: #cccccc;
transition: 0.3s;
}
.c:hover{
background-color: #c41333;
width:40%;
}
.c:hover ~ .a, .b{
width:30%;
}
/* Clear floats after the columns */
.row:after {
content: "";
display: table;
clear: both;
}
<!--<head>
<link rel="stylesheet" href="style.css" />
</head>-->
<div class="row">
<div class="column a">
<p>tester</p>
</div>
<div class="column b">
<p>tester</p>
</div>
<div class="column c">
<p>tester</p>
</div>
</div>
感谢您的帮助。
答案 0 :(得分:0)
提琴:https://jsfiddle.net/kawal/ygn8fk17/7/
.box {
width: 100px;
height: 100px;
border: 1px solid red;
transition: width 0.2s ease-out;
}
.box:hover {
width: 200px
}
答案 1 :(得分:0)
您可以使用flexbox来执行此操作。您只需更改当前悬停的元素的宽度,它的兄弟姐妹就会适应它。
VCS
commit...
答案 2 :(得分:0)
相反呢? https://jsfiddle.net/jtnxL7cz/
.column {
float: left;
width: 33.33%;
height:100%;
transition: 0.3s;
}
.row:hover .column {
width: 30%;
}
.row:hover .column:hover {
width: 40%;
}
.a{
background-color: #ff0000;
}
.b{
background-color: #eeeeee;
}
.b:hover{
background-color: #c41333;
}
.c{
background-color: #cccccc;
}
.c:hover{
background-color: #c41333;
}