【发布时间】:2019-10-28 07:27:09
【问题描述】:
我的网站的每个页面都有一个页面标题,默认情况下放置在该页面的横幅图像中。我已经制定了以这些页面标题为中心的解决方案,但是页面之间的代码实现不一致。最大的问题是以移动为中心,从一个页面到另一个页面,事情可能会有点不稳定。我之前使用此规则将文本居中,但它会导致基于设备屏幕宽度的不一致:
@media screen and (max-width: 769px) { #banner-area { padding-top: 85px; }}
实际上,这将内容推送到手机屏幕尺寸上的正确位置。但是,它似乎有点“hacky”和不优雅。后来我转向 translateY 属性,并设置此代码以垂直居中文本:
/* Page 1 */
@media screen and (max-width: 769px) { #page-title { transform: translateY(-30px); }}
@media screen and (min-width: 770px) { #page-title { transform: translateY(10px); }}
/* Pages 2 through 7 */
#page-title { transform: translateY(50%); } /* or below... */
@media screen and (min-width: 770px) { #page-title { transform: translateY(50%); }}
对应的HTML:
<div id="banner-area">
<div id="page-title">
这是编写此垂直居中 CSS 规则的正确方法,还是其他人可以提供更好的解决方案?让我感到困扰的是,第 1 页有自己的一套规则,其余的在实现居中效果方面或多或少是相同的。可以让我摆脱横幅区域填充黑客的东西会很棒 - 我需要一个适用于多种设备屏幕尺寸的通用规则。
【问题讨论】:
-
你现在有 HTML 和 CSS 吗?
-
如果不使用 DevTools/Web Inspector,我无法完全访问网站模板的 HTML(使用 Squarespace)。父元素是#banner-area,子元素是#page-title
-
添加了非常基本的 HTML。就问题而言,对 CSS 中使用的选择器没有太大影响
标签: html css vertical-alignment