为啥我的文字没有以手机版为中心

Posted

技术标签:

【中文标题】为啥我的文字没有以手机版为中心【英文标题】:How come my text is not centering on the mobile version为什么我的文字没有以手机版为中心 【发布时间】:2021-12-06 16:57:39 【问题描述】:

我是编程新手,我正在尝试制作一个响应式网页。文本以桌面版为中心,但在移动版上,由于某种原因,文本向右对齐,我无法弄清楚如何使其完美地居中。有人可以看看我的代码并告诉我我做错了什么吗?谢谢!

*
        margin: 0;
        padding: 0;
        font-family: 'Noto Sans', sans-serif;

.header
        min-height: 100vh;
        width: 100%;
        background-image: linear-gradient(rgba(4,9,30,0.7),rgba(4,9,30,0.7)),url(assets/banner.png);
        background-position: center;
        background-size: cover;
        position: relative;

nav
    display: flex;
    padding: 2% 6%;
    justify-content: space-between;
    align-items: center;

nav a      
        color: #fff;
        text-decoration: none;
        font-size: 14px;

nav a:hover
    color:#f44336;
    transition: .4s;

.nav-links
        flex:1;
        text-align: right;

.nav-links ul li
        list-style: none;
        display: inline-block;
        padding: 8px 12px;
        position: relative;

.nav-links ul li a
        color: #fff;
        text-decoration: none;
        font-size: 13px;

nav ul li a:hover
    color:#f44336;
    transition: .4s;

.text-box
        width: 90%;
        color: #fff;
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%,-50%);
        text-align: center;

.text-box h1
    font-size: 54px;

.text-box p
    margin: 10px 0 40px;
    font-size: 14px;
    color: #fff;


nav .fa
        display: none;


@media(max-width: 700px)
    nav
        display: flex;
        padding: 4% 8%;
        justify-content: space-between;
        align-items: center;
    
        .text-box h1
                font-size: 14px;
        
        .text-box p
                font-size: 11px;
        
        .text-box
        text-align: center;
        
        .nav-links ul li 
            display: block;
        
        .nav-links
            position: absolute;
            background: #f44336;
            height: 100vh;
            width: 200px;
            top: 0;
            right: -200px;
            text-align: left;
            z-index: 2;
            transition: 1s;
        
        nav ul li a:hover
            color:#12161d;
            transition: .4s;
        
        nav .fa
            display: block;
            color: #fff;
            margin: 10px;
            font-size: 22px;
            cursor: pointer;
        
        .nav-links ul
            padding: 30px;
        
<!DOCTYPE html>
<html>
    <head>
    <meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <title>Personal Homepage</title>
    <link rel="stylesheet" href="style.css">
    <link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Noto+Sans:wght@400;700&display=swap" rel="stylesheet">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@5.15.4/css/fontawesome.min.css">
<script src="https://kit.fontawesome.com/012219d900.js" crossorigin="anonymous"></script>
<style>
.text-box
background-color: transparent;
color: #FFF;
margin: 20px;
padding: 20px;

</style>
    </head>
    <body>
        <section class="header">
            <nav>
                <a href="index.html">AMANDA YEE</a>
                <div class="nav-links" id="navLinks">
                  <i class="fa fa-times" onclick="hideMenu()"></i>
                    <ul>
                        <li><a href="about.html">ABOUT</a></li>
                        <li><a href="gallery.html">GALLERY</a></li>
                        <li><a href="CV.html">CV</a></li>
                        <li><a href="contact.html">CONTACT</a></li>
                    </ul>
                </div>
                <i class="fa fa-bars" onclick="showMenu()"></i>
            </nav>
            
<div class="text-box">
    <h1>NICE TO MEET YOU</h1>
    <p>Hi! My name is Amanda Yee and I'm a User Experience Designer studying at Pratt.
    </p>
</div>

</section>

<!--Footer-->

<section class="footer">
    <div class="icons">
    <a href="https://www.linkedin.com/in/amanda-zi-yee/"> <i class="fa fa-linkedin-square"></i></a>
    <a href="https://www.instagram.com/yu.zixin/"><i class="fa fa-instagram"></i></a>
    <a href="mailto:ayee3@pratt.edu"><i class="fa fa-envelope-o"></i></a>
    </div>
</section>






<!--javascript for Toggle Menu-->
    <script>
        var navLinks = document.getElementById("navLinks");
        
        function showMenu()
            navLinks.style.right = "0";
        
        function hideMenu()
            navLinks.style.right = "-200px";
        
    </script>
    
    </body>
</html>

【问题讨论】:

我使用“运行代码 sn-p”按钮运行了您的代码,并且标题和副标题确实位于输出的中心。您能否为您的问题提供更多背景信息,例如使用的浏览器版本? 【参考方案1】:

首先,我会将overflow-x: hidden; 包含在您的HTML 文档中,如下所示。这样,您就不能水平滚动,这在您的移动版本中是可能的,从而使您的 burgermenu 的子项可见,而无需实际单击它。请记住,如果将其插入*,则根本无法水平滚动。在你认为合适的地方使用它:)

*
        margin: 0;
        padding: 0;
        font-family: 'Noto Sans', sans-serif;
        overflow-x: hidden;

至于您的文本居中,我建议您使用flexbox 而不是position: absolute 进行定位。一旦你了解了 Flexbox 的工作原理,它就非常易于使用。它也非常适合构建响应式网站。 position: absolute 在某些情况下很好,但如果使用不当,它会很快变得混乱。 希望这可以帮助!如果您有任何问题,请告诉我

.text-box
  color: #fff;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
<div class="text-box">
      <h1>NICE TO MEET YOU</h1>
      <p>Hi! My name is Amanda Yee and I'm a User Experience Designer studying at Pratt.
      </p>
    </div>

【讨论】:

以上是关于为啥我的文字没有以手机版为中心的主要内容,如果未能解决你的问题,请参考以下文章

Java知识点13 Hibernate查询语言(HQL),本文以hibernate注解版为例讲解

selenium3降版为selenium2

wps文字怎样快速的排序号

word中怎样同时粘贴图片和文字

自己手机的设备名称怎么查?

PPT 字体无法替换,文件修改也无法保存!