问题
I'm trying to get the thumbnails to display horizontally on the bottom using the latest Fancybox. While this example works, it's not working for me.
I also tried the same example code from codepen on jsfiddle and it's not working, with the same issue I'm having. It just goes to the top left. The "top" CSS does not seem to have any effect with the thumbnails.
What's going wrong?
$('[data-fancybox="images"]').fancybox({
thumbs: {
autoStart: true,
axis: 'x'
}
})
.fancybox-thumbs {
top: auto;
width: auto;
bottom: 0;
left: 0;
right: 0;
height: 95px;
padding: 10px 10px 5px 10px;
box-sizing: border-box;
background: rgba(0, 0, 0, 0.3);
}
.fancybox-show-thumbs .fancybox-inner {
right: 0;
bottom: 95px;
}
<script src="//code.jquery.com/jquery-3.3.1.min.js"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/fancyapps/fancybox@3.5.7/dist/jquery.fancybox.min.css" />
<script src="https://cdn.jsdelivr.net/gh/fancyapps/fancybox@3.5.7/dist/jquery.fancybox.min.js"></script>
<h2>fancyBox v3.3 - Thumbnails at the bottom</h2>
<hr class="my-5" />
<p class="imglist">
<a href="https://source.unsplash.com/juHayWuaaoQ/1500x1000" data-fancybox="images">
<img src="https://source.unsplash.com/juHayWuaaoQ/240x160" />
</a>
<a href="https://source.unsplash.com/eWFdaPRFjwE/1500x1000" data-fancybox="images">
<img src="https://source.unsplash.com/eWFdaPRFjwE/240x160" />
</a>
<a href="https://source.unsplash.com/i2KibvLYjqk/1500x1000" data-fancybox="images">
<img src="https://source.unsplash.com/i2KibvLYjqk/240x160" />
</a>
<a href="https://source.unsplash.com/RFgO9B_OR4g/1500x1000" data-fancybox="images">
<img src="https://source.unsplash.com/RFgO9B_OR4g/240x160" />
</a>
<a href="https://source.unsplash.com/7bwQXzbF6KE/1500x1000" data-fancybox="images">
<img src="https://source.unsplash.com/7bwQXzbF6KE/240x160" />
</a>
<a href="https://source.unsplash.com/NhU0nUR7920/1500x1000" data-fancybox="images">
<img src="https://source.unsplash.com/NhU0nUR7920/240x160" />
</a>
<a href="https://source.unsplash.com/ndjyaOp0fOc/1600x900" data-fancybox="images" data-type="image">
<img src="https://source.unsplash.com/ndjyaOp0fOc/240x160" />
</a>
<a href="https://source.unsplash.com/A-fubu9QJxE/1600x900" data-fancybox="images" data-type="image">
<img src="https://source.unsplash.com/A-fubu9QJxE/240x160" />
</a>
<a href="https://source.unsplash.com/rkkr6-2I4sg/1600x900" data-fancybox="images" data-type="image">
<img src="https://source.unsplash.com/rkkr6-2I4sg/240x160" />
</a>
<a href="https://source.unsplash.com/mr_Tg4SI66A/1600x900" data-fancybox="images" data-type="image">
<img src="https://source.unsplash.com/mr_Tg4SI66A/240x160" />
</a>
<a href="https://source.unsplash.com/YEsedBccUEA/1600x900" data-fancybox="images" data-type="image">
<img src="https://source.unsplash.com/YEsedBccUEA/240x160" />
</a>
<a href="https://source.unsplash.com/Hw62tzAkXXE/1600x900" data-fancybox="images" data-type="image">
<img src="https://source.unsplash.com/Hw62tzAkXXE/240x160" />
</a>
<a href="https://source.unsplash.com/Lzx4J_Pb3sk/1600x900" data-fancybox="images" data-type="image">
<img src="https://source.unsplash.com/Lzx4J_Pb3sk/240x160" />
</a>
<a href="https://source.unsplash.com/cZVthlrnlnQ/1600x900" data-fancybox="images" data-type="image">
<img src="https://source.unsplash.com/cZVthlrnlnQ/240x160" />
</a>
<a href="https://source.unsplash.com/vddccTqwal8/1600x900" data-fancybox="images" data-type="image">
<img src="https://source.unsplash.com/vddccTqwal8/240x160" />
</a>
<a href="https://source.unsplash.com/Sj5efgWguDs/1600x900" data-fancybox="images" data-type="image">
<img src="https://source.unsplash.com/Sj5efgWguDs/240x160" />
</a>
<a href="https://source.unsplash.com/Y7y7fe8hrh0/1600x900" data-fancybox="images" data-type="image">
<img src="https://source.unsplash.com/Y7y7fe8hrh0/240x160" />
</a>
<a href="https://source.unsplash.com/sYegwYtIqJg/1600x900" data-fancybox="images" data-type="image">
<img src="https://source.unsplash.com/sYegwYtIqJg/240x160" />
</a>
</p>
回答1:
This seems related to the order in which the CSS is loaded.
In your jsFiddle, your CSS is loaded before the stylesheets in the HTML pane. Since your styles have the same specificity as FancyBox's defaults, yours are being overridden when FancyBox subsequently loads.
In a specificity tie, the last rule defined wins (MDN)
Notice that your styles are crossed out in favor of FancyBox's:
However, when the stylesheets are added as "resources" in the left panel, it works as expected because your styles are loaded last.
One way to ensure that your styles always take precedence is to add a baseClass
and increase the specificity of your styles. See FancyBox options.
Here's a demonstration:
$('[data-fancybox="images"]').fancybox({
baseClass: 'myFancyBox',
thumbs: {
autoStart: true,
axis: 'x'
}
})
.myFancyBox .fancybox-thumbs {
top: auto;
width: auto;
bottom: 0;
left: 0;
right: 0;
height: 95px;
padding: 10px 10px 5px 10px;
box-sizing: border-box;
background: rgba(0, 0, 0, 0.3);
}
.myFancyBox .fancybox-show-thumbs .fancybox-inner {
right: 0;
bottom: 95px;
}
<script src="//code.jquery.com/jquery-3.3.1.min.js"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/fancyapps/fancybox@3.5.7/dist/jquery.fancybox.min.css" />
<script src="https://cdn.jsdelivr.net/gh/fancyapps/fancybox@3.5.7/dist/jquery.fancybox.min.js"></script>
<p class="imglist">
<a href="https://source.unsplash.com/juHayWuaaoQ/1500x1000" data-fancybox="images"><img src="https://source.unsplash.com/juHayWuaaoQ/240x160"></a>
<a href="https://source.unsplash.com/eWFdaPRFjwE/1500x1000" data-fancybox="images"><img src="https://source.unsplash.com/eWFdaPRFjwE/240x160"></a>
<a href="https://source.unsplash.com/i2KibvLYjqk/1500x1000" data-fancybox="images"><img src="https://source.unsplash.com/i2KibvLYjqk/240x160"></a>
<a href="https://source.unsplash.com/RFgO9B_OR4g/1500x1000" data-fancybox="images"><img src="https://source.unsplash.com/RFgO9B_OR4g/240x160"></a>
<a href="https://source.unsplash.com/7bwQXzbF6KE/1500x1000" data-fancybox="images"><img src="https://source.unsplash.com/7bwQXzbF6KE/240x160"></a>
<a href="https://source.unsplash.com/NhU0nUR7920/1500x1000" data-fancybox="images"><img src="https://source.unsplash.com/NhU0nUR7920/240x160"></a>
<a href="https://source.unsplash.com/ndjyaOp0fOc/1600x900" data-fancybox="images"><img src="https://source.unsplash.com/ndjyaOp0fOc/240x160"></a>
<a href="https://source.unsplash.com/A-fubu9QJxE/1600x900" data-fancybox="images"><img src="https://source.unsplash.com/A-fubu9QJxE/240x160"></a>
<a href="https://source.unsplash.com/rkkr6-2I4sg/1600x900" data-fancybox="images"><img src="https://source.unsplash.com/rkkr6-2I4sg/240x160"></a>
<a href="https://source.unsplash.com/mr_Tg4SI66A/1600x900" data-fancybox="images"><img src="https://source.unsplash.com/mr_Tg4SI66A/240x160"></a>
<a href="https://source.unsplash.com/YEsedBccUEA/1600x900" data-fancybox="images"><img src="https://source.unsplash.com/YEsedBccUEA/240x160"></a>
<a href="https://source.unsplash.com/Hw62tzAkXXE/1600x900" data-fancybox="images"><img src="https://source.unsplash.com/Hw62tzAkXXE/240x160"></a>
<a href="https://source.unsplash.com/Lzx4J_Pb3sk/1600x900" data-fancybox="images"><img src="https://source.unsplash.com/Lzx4J_Pb3sk/240x160"></a>
<a href="https://source.unsplash.com/cZVthlrnlnQ/1600x900" data-fancybox="images"><img src="https://source.unsplash.com/cZVthlrnlnQ/240x160"></a>
<a href="https://source.unsplash.com/vddccTqwal8/1600x900" data-fancybox="images"><img src="https://source.unsplash.com/vddccTqwal8/240x160"></a>
<a href="https://source.unsplash.com/Sj5efgWguDs/1600x900" data-fancybox="images"><img src="https://source.unsplash.com/Sj5efgWguDs/240x160"></a>
<a href="https://source.unsplash.com/Y7y7fe8hrh0/1600x900" data-fancybox="images"><img src="https://source.unsplash.com/Y7y7fe8hrh0/240x160"></a>
<a href="https://source.unsplash.com/sYegwYtIqJg/1600x900" data-fancybox="images"><img src="https://source.unsplash.com/sYegwYtIqJg/240x160"></a>
</p>
来源:https://stackoverflow.com/questions/55749254/position-thumbnails-on-bottom-with-fancybox