HTML和CSS适应不同终端屏幕的实现(附typecho CSS文件)

HTML和CSS适应不同终端屏幕的实现(附typecho CSS文件)


DATE: 2017-09-26 21:08:41

C/S架构已然渐渐落伍,为了追赶时代的潮流,我也赶紧来学习下B/S架构。

BS架构最强大的地方是只需要开发处理业务逻辑的Server,而Client端只需要使用浏览器或APP就可惜读取Server 信息。而如今的APP,以Android 为例,完全可以通过只加个Android APP的壳去读取HTML来实现。

但同样的页面前端工程师是怎么做到适应不同的终端的呢?我这里有一个简单的例子。

先看HTML代码,这里是一个img的div,功能是加载一张图片。

<div class="img"> <img src="./job/imgs/growup_timeline.png" alt="Forest" width="614" height="261"> </div>

以下是CSS代码,先将各终端下统一的风格代码提取出来。

这里有点C++或Java等开发语言中父类的意思。

div.img {
border: 1px solid #ccc;
width: 614px;
height: 261px;
}

然后,针对不同屏幕大小的终端,分情况进行处理。 继承父类特性的子类 不同的屏幕大小,用min-windthmax-width来区分,分为是小于600,600到1200之间,以及大于1200。(单位:像素)


@media (min-width:1200px) {
div.img {
float:right;
}
}

@media (min-width:600max-width:1200px) { div.img { float:top; } }

@media (max-width:600px) { div.img { float:left; } }

这样,在不同的屏幕宽度下,界面会有相应的变化。怎么样?是不是超级简单?

附typecho的默认CSS文件。是可以区分不同终端的,可通过查找@media分析学习本文件。

body{background-color:#FFF;color:#444;font-family:"Droid Serif",Georgia,"Times New Roman",STHeiti,serif;font-size:87.5%;}a{color:#3354AA;text-decoration:none;}a:hover,a:active{color:#444;}pre,code{background:#F3F3F0;font-family:Menlo,Monaco,Consolas,"Lucida Console","Courier New",monospace;font-size:.92857em;}code{padding:2px 4px;color:#B94A48;}pre{padding:0;border:1px solid #ccc;overflow:auto;max-height:400px;}pre code{padding:3px;color:#444;}blockquote{margin:1em 1.5em;padding-left:1.5em;border-left:4px solid #F3F3F0;}h1,h2,h3,h4,h5,h6{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;}input[type="text"],input[type="email"],input[type="url"],input[type="password"],textarea{padding:5px;border:1px solid #E9E9E9;width:100%;border-radius:2px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;}textarea{resize:vertical;}.post-meta a,.post-content a,.widget a,.comment-content a{border-bottom:1px solid #EEE;}.post-meta a:hover,.post-content a:hover,.widget a:hover,.comment-content a:hover{border-bottom-color:transparent;}.browsehappy{padding:8px 0;background:#FBE3E4;color:#8A1F11;text-align:center;}.browsehappy a{color:#8A1F11;text-decoration:underline;font-weight:bold;}#header{padding-top:35px;border-bottom:1px solid #EEE;}#logo{color:#333;font-size:2.5em;}.description{margin:.5em 0 0;color:#999;font-style:italic;}#nav-menu{margin:25px 0 0;padding:0;}#nav-menu a{display:block;margin-right:-1px;padding:0 20px;border:1px solid #EEE;border-bottom:none;height:32px;line-height:32px;color:#444;float:left;}#nav-menu a:hover,#nav-menu .current{background:#F6F6F6;}#search{position:relative;margin-top:15px;}#search input{padding-right:30px;}#search button{position:absolute;right:4px;top:2px;border:none;padding:0;width:24px;height:24px;background:transparent url(img/icon-search.png) no-repeat center center;direction:ltr;text-indent:-9999em;}@media(-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){#search button{background-image:url(img/icon-search@2x.png);-webkit-background-size:24px 24px;-moz-background-size:24px 24px;-o-background-size:24px 24px;background-size:24px 24px;}}.post{padding:15px 0 20px;border-bottom:1px solid #EEE;}.post-title{margin:.83em 0;font-size:1.4em;}.post-meta{margin-top:-0.5em;padding:0;color:#999;font-size:.92857em;}.post-meta li{display:inline-block;margin:0 8px 0 0;padding-left:12px;border-left:1px solid #EEE;}.post-meta li:first-child{margin-left:0;padding-left:0;border:none;}.post-content{line-height:1.5;}.post .tags{clear:both;}.post-near{list-style:none;margin:30px 0;padding:0;color:#999;}.post-near li{margin:10px 0;}.archive-title{margin:1em 0 -1em;padding-top:20px;color:#999;font-size:1em;}.more{text-align:center;}.more a{border:none;}.protected .text{width:50%;}.page-navigator{list-style:none;margin:25px 0;padding:0;text-align:center;}.page-navigator li{display:inline-block;margin:0 4px;}.page-navigator a{display:inline-block;padding:0 10px;height:30px;line-height:30px;}.page-navigator a:hover{background:#EEE;text-decoration:none;}.page-navigator .current a{color:#444;background:#EEE;}#comments{padding-top:15px;}.comment-list,.comment-list ol{list-style:none;margin:0;padding:0;}.comment-list li{padding:14px;margin-top:10px;border:1px solid #EEE;}.comment-list li.comment-level-odd{background:#F6F6F3;}.comment-list li.comment-level-even{background:#FFF;}.comment-list li.comment-by-author{background:#FFF9E8;}.comment-list li .comment-reply{text-align:right;font-size:.92857em;}.comment-meta a{color:#999;font-size:.92857em;}.comment-author{display:block;margin-bottom:3px;color:#444;}.comment-author .avatar{float:left;margin-right:10px;}.comment-author cite{font-weight:bold;font-style:normal;}.comment-list .respond{margin-top:15px;border-top:1px solid #EEE;}.respond .cancel-comment-reply{float:right;margin-top:15px;font-size:.92857em;}#comment-form label{display:block;margin-bottom:.5em;font-weight:bold;}#comment-form .required:after{content:" *";color:#C00;}#secondary{padding-top:15px;word-wrap:break-word;}.widget{margin-bottom:30px;}.widget-list{list-style:none;padding:0;}.widget-list li{margin:5px 0;line-height:1.5;}.widget-list li ul{margin-left:15px;}#footer{padding:3em 0;line-height:1.5;text-align:center;color:#999;}.error-page{margin-top:100px;margin-bottom:100px;}.post-content,.comment-content{line-height:1.5;word-wrap:break-word;}.post-content h2,.comment-content h2{font-size:1.28571em;}.post-content img,.comment-content img,.post-content video,.comment-content video{max-width:100%;}.post-content a img,.comment-content a img{background:#FFF;position:relative;bottom:-4px;}.post-content hr,.comment-content hr{margin:2em auto;width:100px;border:1px solid #E9E9E9;border-width:2px 0 0 0;}.aligncenter,div.aligncenter{display:block;margin-left:auto;margin-right:auto;}.alignleft{float:left;}.alignright{float:right;}img.alignleft{margin:0 15px 0 0;}img.alignright{margin:0 0 0 15px;}@media(max-width:767px){body{font-size:81.25%;}#nav-menu a{float:none;display:inline-block;margin:0 -2px;}}@media(max-width:768px){#header,.post-title,.post-meta{text-align:center;}}@media(min-width:1200px){.container{max-width:952px;}}.hidden{display:none!important;visibility:hidden;}.sr-only{border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;}.sr-only.focusable:active,.sr-only.focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto;}.invisible{visibility:hidden;}

版权声明

FindFor


首发 FindFor,转载请附链接!

赞赏支持

感谢支持!


建站不易,感谢支持!

推荐阅读
智慧城管系统详细设计方案
# 智慧城管系统详细设计方案 ## 一、系统架构设计 ### (一)整体架构 本系统采用前后端分离的微服务架构,前端基于Vue.js构建用户界面,后端使用ThinkPHP8开发API服务。通过微服务架构,将系统拆分为多个独立的服务模块,各模块可独立开发、部署和扩展,提高了系统的可维护性和扩展性。 ### (二)技术栈选择 1. **前端技术栈** - **Vue.js**:作为前端框架,
135

libnfc安装配置(Linux)
## 1、安装依赖库 ```shell sudo apt-get install libusb-dev libpcsclite-dev libusb libpcsclite1 libccid pcscd ``` ## 2、下载libnfc 选择一个libnfc存放路径,执行git命令下载libnfc ```shell git clone https://github.com/nfc-tools/l
309

dirsearch简单使用
` dirsearch`是一个用于在Web服务器上枚举目录和文件的工具,支持多线程,具有一些启发式算法,能够识别隐藏目录。以下是使用`dirsearch`的一些基本步骤: 1. **安装dirsearch**: 首先,确保你的系统上已经安装了Python。然后,可以通过以下方式安装`dirsearch`: `git clone https://gi
64

dirb使用
`dirb`(Directory Buster)是一个用于在Web服务器上枚举目录和文件的工具。它通过发送HTTP请求并分析响应来探测目标主机上存在的目录和文件。`dirb`的主要目的是帮助安全测试人员和黑客发现目标网站上隐藏的目录,这些目录可能包含敏感信息或安全漏洞。 以下是一些`dirb`工具的基本用法和参数: 1. **基本用法**: `dirb http://targ
89

ubuntu20.04.4安装golang语言
## 1、官网下载安装包 Go下载 - Go语言中文网 - Golang中文社区 https://studygolang.com/dl ## 2、将下载下来的安装包解压到env路径下 ``` tar xf go1.18.linux-amd64.tar.gz ``` ## 3、添加环境变量 通过将Go目录的位置添加到$PATH环境变量中,系统将知道在何处可以找到Go可执行二进制文件。 ``` vim
132

升级 Linux 服务器上的 TLS 版本至 1.2 或更高版本
## 1、检查当前 TLS 版本: 首先,您需要确认当前服务器上所使用的 TLS 版本。您可以通过运行以下命令来检查 OpenSSL 版本和支持的 TLS 版本: ```shell openssl version openssl ciphers -v ``` 如果您的 OpenSSL 版本较旧,可能需要升级 OpenSSL 以支持更高的 TLS 版本。升级 OpenSSL 的具体步骤取决于您所使用
88

茶馆注册商标需要注册哪几个类别?
茶馆注册商标需要综合考虑多个方面,以下是详细介绍: ### 商标查询与评估 在进行茶馆商标注册之前,首先需要进行商标查询与评估,以确定所申请商标是否已经被他人注册或使用,避免侵权纠纷。可以通过中国国家知识产权局商标局的官方网站进行查询。 ### 明确商标注册类别 - **核心类别** - **第30类**:主要包括咖啡、茶、可可和咖啡代用品;米;食用淀粉和西米;面粉和谷类制品;面包、糕
182

咖啡馆注册商标应该注册哪几类?咖啡馆还有配套的公众号和小程序,商标是否需要追加类型?
## 咖啡馆注册商标应该注册哪几类? 咖啡馆注册商标时,需要综合考虑核心业务、相关产品及未来发展可能涉及的领域,以下为你详细介绍需要重点关注的商标类别: ### 核心经营服务类 - **第43类**:提供食物和饮料服务;临时住宿。 - **重要子类别**: - 4301 组包含咖啡馆、餐厅、自助餐厅、快餐馆等服务。咖啡馆日常经营提供饮品、餐食等服务,此类别是必须注册的核心
497

[保姆级] Vue3 开发文档
#### 获取 this `Vue2` 中每个组件里使用 this 都指向当前组件实例,this 上还包含了全局挂载的东西、路由、状态管理等啥啥都有 而 Vue3 中没有 this,如果想要类似的用法,有两种,一是获取当前组件实例,二是获取全局实例,如下自己可以去打印出来看看 ```vue import { getCurrentInstance } from 'vue' // proxy
283

【转载】树莓派时间同步方法,来自博客园
树莓派系统时间不对在《初识树莓派》一文最后一张截图中其实隐藏了一个我没有太在意的时间问题,今天在开发树莓派监控程序的时候才发现。从图中我们可以知道上次登录时间是1970年1月1日星期四的00:03:17分,由此我们可以推断,新安装系统的树莓派默认系统时间应该是1970年1月1日开始的。很明显,这个时间与我们期望的当前时间是不符的。我们需要将系统时间修改为和当前时间同步。第一步:启用网络时间协议为了
393

Web前端开发众包资源共享,探索者联盟兼职开发者招募
# 项目情况 联盟接到合作伙伴的开发需求,有一系列的APP要开发。有很多个APP哦。 ## 需求描述 1. 参考指定APP,基于H5+Vue开发页面。 2. APP并不复杂,无需使用脚手架,cdn引入开发即可。 ## 交付要求 1. 源码交付 2. 代码风格良好,可顺利二次开发 3. 只要满足代码质量要求,能正常走通业务逻辑即可,无严格的APP测试步骤。 ## 预算 具体预算看APP复杂度。目前普
648

探索互联网新机遇,加入精英社群,共创辉煌职业篇章!
【探索互联网新机遇,加入精英社群,共创未来!】 在这个日新月异的互联网时代,每一处都蕴藏着无限可能与创新机遇。我们诚邀您成为“探索者联盟”的一员,与我们一起深度剖析市场动态,精准把握行业趋势,共同开启一段激动人心的职业旅程! 加入我们,您将享受到: - **市场分析**:深度解读互联网行业最新动态,洞悉市场先机。 - **职业规划**:一对一专业指导,定制个性化职业发展路径,助力您步步高升。
366