窗口调整大小时隐藏文本

时间:2017-11-13 20:03:48

标签: html css window

我正在基于提供的模板构建一个类的网站,我正在努力使它能够在窗口调整大小时移动我的文本(现在,调整窗口大小会遮挡文本和相关按钮)。

理想情况下,我希望页面以这样一种方式锚定,使得焦点保留在文本/按钮上 - 并且通过扩展,图像的右下角 - 随着窗口的大小调整。

这是我的HTML:

<!DOCTYPE html>
<html lang="en">
    <head>

        <meta name="viewport" content="width=device-width, inital-scale=1.0">  
<!-- This tells mobile devices not to zoom out the page, start with scale=1 -->
        <link rel="stylesheet", type="text/css", href="Vendors/css/normalize.css">
        <link rel="stylesheet", type="text/css", href="Vendors/css/grid.css">
        <link rel="stylesheet", type="text/css", href="Vendors/css/ionicons.min.css">
        <link rel="stylesheet", type="text/css", href="Resources/css/style.css">
        <link rel="stylesheet", type="text/css", href="Resources/css/queries.css">
        <link href='http://fonts.googleapis.com/css?family=Lato:100,300,400,300italic' rel='stylesheet' type='text/css'>

        <title>Whitetail Acres Tree Farm</title>
    </head>
    <body>
        <header>
            <nav>
                <div class="row">
                    <img src="Resources/img/logo-white.png" alt="Omnifood logo" class="logo">
                    <ul class="main-nav">
                        <li><a href="#features">Food Delivery</a></li>
                        <li><a href="#meals">How it Works</a></li>
                        <li><a href="#steps">Our Cities</a></li>
                        <li><a href="#cities">Sign up</a></li>
                    </ul>
                    <a class="mobile-nav-icon js--nav-icon"><i class="ion-navicon-round"></i></a>
                </div>
            </nav>
            <div class="hero-text-box">
                <h1>Schedule <br> Your Visit!</h1>    
                <a class="btn btn-full js--scroll-to-plans" href="#">I'm hungry</a>
                <a class="btn btn-ghost js--scroll-to-start" href="#">Show me more</a>
            </div>
        </header>

这是我的CSS:

/* Universal Reset*/
*{
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html
{
    background-color: #ffffff;
    color: #555;
    font-family: 'Lato', 'Arial', sans-serif;
    font-size: 20px;
    font-weight: 300;
    text-rendering: optimizeLegibility;
}

.clearfix {zoom: 1}
.clearfix:after {
    content: '.';
    clear: both;
    display: block;
    height: 0;
    visibility: hidden;
}

header{
    background-image: url(img/hero.jpg);
    background-size: cover;
    background-position:bottom, right;
    height: 100vh;
    background-attachment:inherit;
}

.hero-text-box{
    position: absolute;
    width:1080px;
    top:80%;
    left:55%;
    text-align: right;
    transform: translate(-50%, -50%);
}

.row{
    max-width: 1140px;
    margin:0 auto;
}

section{
    padding: 80px 0;
}

.box{

    padding: 1%;

3 个答案:

答案 0 :(得分:1)

看起来你没有为行定义宽度。 尝试类似:

.row{
max-width: 1140px;
width: 100%;
margin:0 auto;
}

答案 1 :(得分:0)

当我做网络应用程序时,我喜欢使用bootstrap。它为我提供了一堆开箱即用的CSS课程,帮助我创建一个响应式前端,可以在任何屏幕尺寸上完成我需要的操作。简而言之,我会使用媒体查询,引导布局网格或两者的组合。

youtube上有很多教程。这个人展示了基础知识如何用于引导布局网格。 https://youtu.be/GDwWmrpCa30

当您需要UI根据当前设备屏幕大小执行不同操作时,媒体查询非常有用。这可以在不需要引导程序的情况下使用,但也可以与引导程序一起使用以制作真正响应的应用程序。 youtube上也有无数的教程,但这里有一个很好的教程。 https://youtu.be/2KL-z9A56SQ

媒体查询示例:

string DoubleMe(Object o)
{
    switch (o)
    {
        case String s:
            return s + s;
        case Int32 i:
            return (i + i).ToString();
        default:
            return "type which cannot double.";
    }
}

void Main()
{
    var s= "Abc";
    var i= 123;
    var now = DateTime.Now;

    DoubleMe(s).Dump();
    DoubleMe(i).Dump();
    DoubleMe(now).Dump();
}

如果我能得到进一步的帮助,请告诉我。祝你好运。

答案 2 :(得分:0)

当为绝对定位的元素设置精确的宽度时,无论浏览器大小如何,您都应该期望它将保持该宽度。

.hero-text-box{
    position: absolute;
    top:80%;
    left: 49%;
    text-align: right;
    transform: translate(-50%, -50%);
    max-width: 1080px;
    width: 100%;
}

此外,由于转换规则将其移出屏幕,因此左侧值应小于50%。