0

使用 Master Slider 时遇到问题。

它会自动生成很多类。

就我而言,我将视频和图片加载到幻灯片中。

在我检查的代码中:

<?php if($item->type == 1): ?>   <!-- is Video -->
    <img class="ms-thumb video_slider" ... />
?>
<?php if($item->type == 2): ?>   <!-- is Picture -->
    <img class="ms-thumb picture_slider" ... />
    <div class="picturediv"></div> <!-- I tried to add manual element like that to assign instead of using: `ms-thumb-ol` but it auto remove when slide is generate -->
?>

它将生成如下结构:

            div.ms-thumb-frame
                div.ms-thumb video_slider 
                div.ms-thumb-ol

            div.ms-thumb-frame
                div.ms-thumb picture_slider 
                div.ms-thumb-ol

我想用代码添加一个按钮播放:

div.ms-thumb-frame {
    position: relative;
}
div.ms-thumb-frame div.ms-thumb-ol {
    position: absolute;
    display: block;
    background: url(http://www.workbooks.com/sites/default/files/image/play-button-crm-homepage2.png);
    height: 55px;
    width: 57px;
    top: 0;
    left:0;
    right:0;
    bottom:0;
    margin:auto;
}
div.ms-thumb-frame div.ms-thumb-ol:hover {
    background: url(http://www.workbooks.com/sites/default/files/image/play-button-crm-homepage-11.png);
}

你可以看到,我只设计了 element ms-thumb-ol

这个元素在另一个元素中是相同的。

有什么方法可以div.ms-thumb picture_slider同时签到div.ms-thumb-ol

4

3 回答 3

1

如果你想编辑ms-thumb-ol唯一的,你可以使用 css 兄弟组合器,因为它在div.ms-thumb picture_slider. 因此,要修改它,请为您的 css 添加此选择器:

div.ms-thumb picture_slider + ms-thumb-ol{
//Whatever code you want that specific button to have but not the other button
}

组合器的+作用是检查div.ms-thumb picture_slider类是否跟在ms-thumb-ol. 如果是,则应用样式。

编辑:

为了使其更简单,请将您的代码从您拥有的代码更改为:

div.ms-thumb-frame + div.ms-thumb-ol {
position: absolute;
display: block;
background: url(http://www.workbooks.com/sites/default/files/image/play-button-crm-homepage2.png);
height: 55px;
width: 57px;
top: 0;
left:0;
right:0;
bottom:0;
margin:auto;
}


div.ms-thumb-frame + div.ms-thumb-ol:hover {
background: url(http://www.workbooks.com/sites/default/files/image/play-    button-crm-homepage-11.png);
}

只要您的 HTML 设置为您在问题中显示的方式,它就可以工作。

请注意,唯一的区别是兄弟组合器+

于 2016-12-20T11:22:00.503 回答
1

如果您只想设置紧跟在内部元素div.ms-thumb-ol之后的样式,则可以使用CSS Adjacent 兄弟组合器,如下所示:div.ms-thumb.picture_sliderdiv.ms-thumb-frame

div.ms-thumb-frame div.ms-thumb.picture_slider + div.ms-thumb-ol {
    /* ... */
}
于 2016-12-20T11:27:28.570 回答
0

如果您只有两种类型的项目...使用像这样的三元运算符

$class= ($item->type == 1)?'ms-thumb video_slider':'ms-thumb picture_slider';

$classimg标签中使用如下..

<img class="<?php echo $class;?>" ... />
于 2016-12-20T11:15:54.030 回答