CSS 宽度为 100% 的元素落在视口之外
CSS element with 100% width falls outside of viewport
我这里有代码可以根据用户的屏幕尺寸确定要使用的广告尺寸。我还做了这样,如果屏幕太小,广告会自动居中。
当我 运行 具有 google 页面速度洞察力的页面时,我收到此消息:
The page content is 421 CSS pixels wide, but the viewport is only 411 CSS pixels wide. The following elements fall outside the viewport:
The element Advertisement falls outside the viewport.
这对我来说意味着元素 Q 的左右边距总计为 10px,但我从未为 Q 声明过这样的边距。google 完成的测试中的广告单元是320x100
HTML:
<div id="Q">
Advertisement<br>
<ins id="Z">
<!-- adsense box -->
</ins>
</div>
CSS:
@media screen and (max-width:450px){
#Q{
width:100%;
margin:0
}
#Q,#Z{
margin:auto;
overflow:hidden
}
}
#Q{
float:left;
margin:10px
}
#Z{
display:block;
width:234px;
height:60px
}
@media screen and (min-width:319px){
#Z{
width:320px;
height:100px
}
}
@media screen and (min-width:470px){
#Z{
width:300px;
height:250px
}
}
我已经使用以下代码配置了视口:
<meta name="viewport" content="width=device-width,initial-scale=1">
这是在桌面浏览器上以各种分辨率测试没有问题的页面,它产生了上面的页面速度洞察问题。
http://new.clubcatcher.com/m/pictures/bloke/2016apr02/1
我的 CSS 中是否有任何可能导致此问题的内容?我能做些什么来修复它?
移动这个:
#Q{
float:left;
margin:10px
}
#Z{
display:block;
width:234px;
height:60px
}
到您的 css 文件的顶部。
你也应该放置这个方块
@media screen and (min-width:470px){
在此之前
@media screen and (min-width:319px){
线索就在名字里。 CSS 代表级联样式表,因此具有相同特性的任何 CSS 将始终被 CSS 堆栈中的最后一个 CSS 规则覆盖。 CSS 中第一个媒体查询之后的两个 类 将适用于所有媒体大小,因为您没有为这两个指定一个,并且由于它们在第一个之后,它们将优先.
为#Q声明了保证金,导致了这个问题:
#Q{
float:left;
margin:10px
}
将其设置为 margin: auto;
即可。
此外,如果在另一种情况下您将无法修改属性,则有两个简单的选项(尽管最好避免使用它们):
- 使用
!important
标签设置新属性; e.g. margin: auto !important;
- 将新属性放在内联样式中(就像您将文本对齐到 #Q 一样),它优先于链接样式表
我这里有代码可以根据用户的屏幕尺寸确定要使用的广告尺寸。我还做了这样,如果屏幕太小,广告会自动居中。
当我 运行 具有 google 页面速度洞察力的页面时,我收到此消息:
The page content is 421 CSS pixels wide, but the viewport is only 411 CSS pixels wide. The following elements fall outside the viewport:
The element Advertisement falls outside the viewport.
这对我来说意味着元素 Q 的左右边距总计为 10px,但我从未为 Q 声明过这样的边距。google 完成的测试中的广告单元是320x100
HTML:
<div id="Q">
Advertisement<br>
<ins id="Z">
<!-- adsense box -->
</ins>
</div>
CSS:
@media screen and (max-width:450px){
#Q{
width:100%;
margin:0
}
#Q,#Z{
margin:auto;
overflow:hidden
}
}
#Q{
float:left;
margin:10px
}
#Z{
display:block;
width:234px;
height:60px
}
@media screen and (min-width:319px){
#Z{
width:320px;
height:100px
}
}
@media screen and (min-width:470px){
#Z{
width:300px;
height:250px
}
}
我已经使用以下代码配置了视口:
<meta name="viewport" content="width=device-width,initial-scale=1">
这是在桌面浏览器上以各种分辨率测试没有问题的页面,它产生了上面的页面速度洞察问题。
http://new.clubcatcher.com/m/pictures/bloke/2016apr02/1
我的 CSS 中是否有任何可能导致此问题的内容?我能做些什么来修复它?
移动这个:
#Q{
float:left;
margin:10px
}
#Z{
display:block;
width:234px;
height:60px
}
到您的 css 文件的顶部。
你也应该放置这个方块
@media screen and (min-width:470px){
在此之前
@media screen and (min-width:319px){
线索就在名字里。 CSS 代表级联样式表,因此具有相同特性的任何 CSS 将始终被 CSS 堆栈中的最后一个 CSS 规则覆盖。 CSS 中第一个媒体查询之后的两个 类 将适用于所有媒体大小,因为您没有为这两个指定一个,并且由于它们在第一个之后,它们将优先.
为#Q声明了保证金,导致了这个问题:
#Q{
float:left;
margin:10px
}
将其设置为 margin: auto;
即可。
此外,如果在另一种情况下您将无法修改属性,则有两个简单的选项(尽管最好避免使用它们):
- 使用
!important
标签设置新属性;e.g. margin: auto !important;
- 将新属性放在内联样式中(就像您将文本对齐到 #Q 一样),它优先于链接样式表