html与css——响应式设计

早年设计 Web 时,页面是以适配特定的屏幕大小为考量创建的。如果用户正在使用比设计者考虑到的更小或者更大的屏幕,那么结果从多余的滚动条,到过长的行和没有被合理利用的空间,不一而足。随着人们使用的屏幕尺寸的种类越来越多,出现了响应式网页设计的概念(responsive web design,RWD),RWD 指的是允许 Web 页面适应不同屏幕宽度因素等,进行布局和外观的调整的一系列实践。

响应式设计”这个词是Ethan Marcotte 在 2010 年首度提出的,他将其描述为三种技术的混合使用。

第一个是液态网格,这早先已由 Gillenwater 进行探讨,可以在 Marcotte 的文章《Fluid Grids》(出版于 2009 年的《A List Apart》上)中读到。

第二个是液态图像的理念。通过使用相当简单的将设置max-width属性设置为100%的技术,图像可以在包含它们的列变得比图像原始尺寸窄的时候,缩放得更小,但总不会变得更大。这使得图像可以被缩放,以被放到一个灵活尺寸的列,而不是溢出出去,同时也不会在列宽于图像的时候,使图像变得太大以至于画质变得粗糙。

第三个关键的组件是媒体查询。媒体查询使以往 Cameron Adams 探讨过的、由 JavaScript 实现的布局类型切换,可以只使用 CSS 实现。和所有尺寸的屏幕都使用一种布局不同的是,布局是可以改变的:侧栏可以在小屏幕上重新布局,而替代用的导航栏也可以显示出来。

在css中,一般使用媒体查询来进行响应式设计的制作,例如下列代码:

@media screen and (min-width: 768px) {
    #headLeft {
        width: 50%;
    }

    #headRight {
        width: 50%;
    }
}

/*中屏幕*/

@media screen and (min-width: 768px) and (max-width: 992px) {
    #body > div {
        display: flex;
        justify-content: space-between;
    }
}

/*小屏幕*/

@media screen and (max-width: 768px) {
    #header {
        height: 80px;
        text-align: center;
    }

    #headLeft {
        width: 100%;
    }

    #headRight {
        width: 100%;
        text-align: center;
    }

    .card {
        width: 100%;
    }
}

这里我们就利用@media screen来控制一些元素在不同页面下的样式。

posted @ 2023-06-29 16:56  ntbb  阅读(48)  评论(0)    收藏  举报