2017-05-08 70 views
0

我有一个shopify商店的简单问题,我已经安装了一个固定页眉,并向pagecontainer中添加了顶部填充50px,这样头部将不会与主要内容重叠,现在移动设备上有50像素的空间,太空了。如果你能帮助我为桌面和手机设置两个顶级填充,我将非常感激。页面容器填充等于精确高度页眉

置顶头:

header.site-header { 
    position: fixed; 
    z-index: 99999; 
    background-color: #fff; 
    width: 100%; 
    top: 0; 
    left: 0; 
    right: 0; 
    -webkit-box-shadow: 0px 1px 2px 0px rgba(50, 50, 50, 0.36); 
    -moz-box-shadow: 0px 1px 2px 0px rgba(50, 50, 50, 0.36); 
    box-shadow: 0px 1px 2px 0px rgba(50, 50, 50, 0.36); 
} 

页容器(主要内容):

#PageContainer { 
    overflow: hidden; 
    padding-top: 50px; 
    height: 100%; 

如何设置pagecontainer的顶pading相等的确切高度的不管屏幕的分辨率是什么?或者有一种方法可以为每个分辨率设置不同的填充(可能是通过媒体查询?)我刚刚开始学习这个东西3天前,但我做了很多谷歌搜索,可以学得非常快..我也找到了解决方案这个问题,但我不如何实现它:移动头自己固定的包装:

<div class="header.site-header"> 
    <div class="PageContainer is-moved-by-drawer"> 
     This is the fixed header content. 
    </div> 
</div> 

<div class="PageContainer is-moved-by-drawer"> 
    This is the page content. 
</div> 

太谢谢你了!

编辑:这不是我的html代码!

+0

你的CSS和HTML没有什么共同之处 - 你在CSS中列出的类没有用在HTML – Johannes

+0

这是我在论坛中找到的解决方案,它不是我的html代码。 –

+0

看起来您需要CSS媒体查询。您的标题最有可能具有固定的移动和桌面高度。使用媒体查询根据屏幕尺寸匹配此值。 – fubar

回答

0

您想要做的就是使用CSS Media查询,这将允许您为不同设备大小定义不同的样式,因此您可以定义桌面/笔记本电脑/平板电脑尺寸的#PageContainer样式,并且可以定义手机的#PageContainer风格不同。

这些都是缺省引导媒体查询断点:

/* Custom, iPhone Retina */ 
@media only screen and (min-width : 320px) { 

} 

/* Extra Small Devices, Phones */ 
@media only screen and (min-width : 480px) { 

} 

/* Small Devices, Tablets */ 
@media only screen and (min-width : 768px) { 

} 

/* Medium Devices, Desktops */ 
@media only screen and (min-width : 992px) { 

} 

/* Large Devices, Wide Screens */ 
@media only screen and (min-width : 1200px) { 

} 

因此,对于你的应用程序,你需要做的是定义为#PageContainer大型设备为50像素填充,并在可能的填充20px的小型设备,在中型屏幕上甚至可能达到40px。因此,像这样在你的CSS

#PageContainer { 
    overflow: hidden; 
    height: 100%; 
} 

/* Custom, iPhone Retina */ 
@media only screen and (min-width : 320px) { 
    #PageContainer { 
     padding-top: 20px; 
    } 
} 

/* Extra Small Devices, Phones */ 
@media only screen and (min-width : 480px) { 
    #PageContainer { 
     padding-top: 20px; 
    } 
} 

/* Small Devices, Tablets */ 
@media only screen and (min-width : 768px) { 
    #PageContainer { 
     padding-top: 30px; 
    } 
} 

/* Medium Devices, Desktops */ 
@media only screen and (min-width : 992px) { 
    #PageContainer { 
     padding-top: 50px; 
    } 
} 

/* Large Devices, Wide Screens */ 
@media only screen and (min-width : 1200px) { 
    #PageContainer { 
     padding-top: 50px; 
    } 
} 

你真的只需要最小和最大@media块,但我已经包括了所有的人,所以你可以看到不同的断点和实验。

您可以定义核心样式,无论首先在@media块之外放置什么样的屏幕大小,这些属性都是相同的,这样您就不会不必要地重复自己,然后在@中的相同样式中定义填充。媒体块,并且浏览器将全局属性与@media特定属性组合为当前屏幕大小以设置内容的样式。

+0

@ stephen-r-smith非常感谢你,我非常感谢你的帮助,并花时间给我写信,但是我找到了另一种解决方案。我想我会使用百分比,因为它更容易。导航栏高度为10%,页面边距为10%。这种方式将成比例,永不重叠。 –

+0

这也起作用,这取决于你想在你的页面元素上有多少控制。您还可以使用媒体断点显示/隐藏不同的类,以便您可以在大屏幕上使用带有按钮和文本的导航栏,并将其替换为汉堡包图标 - 小屏幕上的下拉菜单。 我会看看Bootstrap,特别是用于创建响应式布局的网格布局系统和@media断点。长远来看,我认为你会非常欣赏框架提供的灵活性和易用性。 –

+0

@ stephen-r-smith现在我发现标题在桌面上占用了太多的垂直空间作为一个固定的元素,我只希望它是顶部的导航栏加滚动时的标志标记,我知道我需要使用jQuery来改变外观,难以实现吗?再次感谢! –