css - 如何制作特定于桌面的广告,而另一个特定于移动设备的广告?
问题描述
我知道这似乎是一个非常简单的问题,但请理解我对 CSS 知之甚少。本质上,我有一个包含两列的响应式网站。我想在桌面右侧添加一个广告,在左侧添加一个用于移动设备的广告。到目前为止一切顺利,我只需要复制和调整他们在其网站上提供的代码,这确实适用于移动设备,隐藏了广告:
<style type="text/css">
.adslot_1 { display:inline-block; width: 320px; height: 50px; }
@media (max-width: 400px) { .adslot_1 { display: none; } }
</style>
<ins class="adsbygoogle adslot_1"
data-ad-client="ca-pub-1234"
data-ad-slot="5678"></ins>
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<script>(adsbygoogle = window.adsbygoogle || []).push({});</script>
但是,我怎样才能将它用于桌面?我假设我所拥有的只是将max-width: 400px更改为min-width,但它似乎根本不起作用......关于为什么以及如何解决它的任何想法?
解决方案
在许多情况下,动态插入内容的脚本倾向于修改元素的内联 CSS 属性,并且由于特殊性,通常会覆盖样式定义。你可以在 MDN上了解更多关于 CSS 的特殊性。
我建议你做的是添加!important
到你的样式定义中,看看是否隐藏了元素。您的样式应该类似于:(我在@media
查询中添加了一些额外的信息。
.adslot_1 {
display:inline-block;
width: 320px;
height: 50px;
}
@media only screen and (max-width: 400px) {
.adslot_1 {
display: none !important;
}
}
您还可以做的是打开浏览器的检查工具(开发人员工具)并检查该特定元素以查看正在应用哪些样式,并根据媒体查询进行检查。
推荐阅读
- c++ - 为什么在 std::string 中使用自定义分配器时没有调用 allocate() 和 deallocate()?
- angular - AWS Lambda + Angular Web 应用程序抛出“错误:找不到模块'@vendia/serverless-express'”
- angular - 对于 Angular 11,如何记住以前的状态,例如滚动位置和路线更改数据?
- prolog - 纯 Prolog 方案 Quine
- javascript - 用户登录 PHP 时是否可以显示按钮?
- python - 执行时 ModuleNotFoundError 但 IntelliJ 未显示错误
- javascript - 发送 AJAX 函数列表项从第一个列表拖放到第二个列表
- html - 在 Canvas 中制作根据纵横比缩小的响应式浏览器窗口
- node.js - 如何在猫鼬中为特定用户角色创建对象?
- typescript - 在 Typescript 中使用联合类型时如何重用代码