通过hover修改其他组件

hover,我们都知道,是监听组件“悬停状态”的一个伪类。

我们一般通过hover来修改组件的背景什么的,很少涉及到太复杂的操作。也就是说我们一般只是对加了hover伪类的元素自身的样式进行改变,比如这样:

<form name="register" method="post" >
    <p><label for="name" >姓名 :</label><input type="text" name="name" /></p>
    <p><label for="password" >原始密码 :</label><input type="password" name="password" /><span>(密码长度为6-20字节。不修改请留空)</span></p>
</form>
.form p {
    /*垂直居中*/
    line-height: 50px;
    height: 50px;
    border-bottom: 1px dashed #CCC;
    font-size: 14px;
    font-family: "宋体";
}
.form p:hover {
    /*当鼠标悬浮时,将背景色改变*/
    background-color: #FFE8E8;
}
.form span {
    display: none;
}
.form p:hover span {
    /*当鼠标悬浮时,将span中的内容显示出来*/
    display: inline;
}

上面的代码中我们为p标签加了hover伪类,当鼠标悬浮时,将背景色改变并将p标签内的span标签中的内容显示出来。

但如果将span标签定义到p标签外面,同样鼠标悬浮到p标签上我们要显示span的内容怎么办?

css提供了一个“+”来代表兄弟元素。

注意:兄弟元素必须有相同的父节点,且紧紧相邻(之间不能有任何其他标签)

那么我们通过这个方法来修改一下刚才的代码:

<form name="register" method="post" >
    <p><label for="name" >姓名 :</label><input type="text" name="name" /></p>
    <p><label for="password" >原始密码 :</label><input type="password" name="password" /></p><span>(密码长度为6-20字节。不修改请留空)</span>
</form>

我们将span标签从p中拿了出来,并紧贴着p标签放在了其后面。

.form p:hover + span {
    display: inline;
}

将前面写到了针对span的hover伪类修改成这样(其实就是加了一个“+”号)。

这样就成功了。

时间: 2024-10-21 06:32:30

通过hover修改其他组件的相关文章

JavaScript动态修改html组件form的action属性

用javaScript动态修改html组件form的action属性,可以在提交时再决定处理表单的页面. <%--JavaScript部分--%><script language="javascript">    <%--略掉其余代码--%>    if(usertypevalue=="company"){         document.form.action="./company.jsp"        

vue组件中的样式属性:scoped,解决在父组件中无法修改子组件样式问题

Scoped CSS规范是Web组件产生不污染其他组件,也不被其他组件污染的CSS规范. vue组件中的style标签标有scoped属性时表明style里的css样式只适用于当前组件元素,它是通过使用PostCSS来改变以下内容实现的: <style scoped> .example { color: red; } </style> <template> <div class="example">hi</div> </

vue scoped 穿透_vue 修改内部组件样式问题

何为scoped? 在vue文件中的style标签上,有一个特殊的属性:scoped.当一个style标签拥有scoped属性时,它的CSS样式就只能作用于当前的组件,也就是说,该样式只能适用于当前组件元素.通过该属性,可以使得组件之间的样式不互相污染.如果一个项目中的所有style标签全部加上了scoped,相当于实现了样式的模块化. scoped的实现原理 vue中的scoped属性的效果主要通过PostCSS转译实现,如下是转译前的vue代码: <style scoped> .examp

vue2.0子组件修改父组件props数据的值

从vue1.0升级至2.0之后 prop的.sync被去除 因此直接在子组件修改父组件的值是会报错的如下: 目的是为了阻止子组件影响父组件的数据那么在vue2.0之后 如何在子组件修改父组件props传过来的值呢?思路是通过子组件$emit发射一个方法  如下: this.$emit('imgDataCallback', callbackUrl); 在父组件使用子组件的地方用v-on绑定这个自定义事件 如下: 然后在父组件定义这个方法 //获取imgurl        getImgData:

Angular父组件内修改子组件的样式

问题的产生与描述 在使用NG-ZORRO组件的过程中,需要根据产品的需要,在某些页面修改某些NZ组件的样式.但是由于angular默认采用了Emulated的视图封装模式,导致即便我们想在父组件中直接去重写子组件的样式,也无法办到. 例如AppComponent是一个"父组件",其内包含Comp1Component与Comp2Component两个"子组件".即使我在AppComponent中添加样式如下样式,然而组件1的字体颜色依然没有变成红色.设置在控制台选中组

vue中修改第三方组件的样式不生效

问题 在使用element-ui时,有时候想要修改组件内的样式,但不成功,例如 <div class="test"> <el-button>按钮</el-button> </div> <style lang="less" scoped> .test{ .el-button span{ background:red; } } </style> 以上对.el-button span的样式不生效 问题

vue子组件修改父组件值时报错

报错 Avoid mutating a prop directly since the value will be overwritten whenever the parent component re-renders. Instead, use a data or computed property based on the prop's value. Prop being mutated: "type" 问题 目前有三个组件 A组件引用了B组件 B组件里面有个props B组件引

Vue的父子组件v-model双向绑定,父组件修改子组件中绑定的v-model属性

先来看下实现的效果,父组件中有个文本框,在点击下面按钮时弹出抽屉,抽屉里也有个文本框,文本框里的初始值要和父组件的文本框同步,并且修改抽屉里的文本框值时 父组件里的文本框值也要跟着改变 网上有大概三种方法 父组件调用子组件传值,子组件通过props接收父组件传来的值,并通过emit发送方法名和值,父组件根据传来的方法名定义方法接收值并进行赋值操作. Sync  这个没试过不了解 v-model  子传父: 父组件定义v-model,子组件中当数据更新时,向父组件emit一个input事件,将更新

vue中修改第三方组件中的样式

项目在中修改第三方组件样式,但由于 scoped 属性的样式隔离,可能需要去除 scoped 或是另起一个 style .这些做法都会带来副作用(组件样式污染.不够优雅),样式穿透在css预处理器中使用才生效 我们可以使用 >>> 或 /deep/ 解决这一问题 <style scoped> 外层 >>> .el-checkbox { display: block; font-size: 26px; .el-checkbox__label { font-si