第9章 DIV+CSS布局

9.1  DIV+CSS概述

DIV+CSS是Web设计标准,它是一种网页的布局方法。与传统中通过表格(table)布局定位的方式不同,它可以实现网页页面内容与表现相分离。DIV组成了网页的格局,CSS则装饰了格局,比如建一栋房子,开始的架子是DIV,架子搭建好后开始装饰,这个装饰就是CSS样式。使用了DIV+CSS布局的网页,它使HTML语言变得越来越复杂化、专用化源码容易扩展,并且更加规整。

1.认识DIV:div 标签在Web标准的网页中使用非常频繁,属于块状元素。div标签是双标签,即以
<div></div>的形式存在,中间可以放置任何内容,包括其他的div标签。
但是在没有CSS的影响下,每个div标签只占据一行,即一行只能容纳一个div标签。

代码如下:

<!DOCTYPE html>
<html><head><meta charset="utf-8" /><title></title><style type="text/css">.d1{width: 100px;height: 80px;border: 2px solid red;}#d2{width: 150px;height: 100px;border: 2px solid black;}</style></head><body><div class="d1">设置宽高</div><div id="d2">利用百分比来设置宽高</div></body>
</html>

2.DIV的宽高设置:

对div设置宽高样式,即div宽度的高度的同时设置

(1)宽高属性(width和height):

宽度:width
width:250px--设置宽值为250像素。
width:50%--设置宽值为父元素的百分之五十。


高度:height
height:250px--设置高值为250像素。
height:50%--设置高值为父元素的百分之五十。

(2)div标签内直接设置宽高:div内直接应用CSS。

代码如下:

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title>示例9.3</title></head><body><div style="width: 250px;height: 100px;border: 2px solid red;">此DIV宽度250px,高度100px</div><div style="width: 150px;height: 50px;border: 2px dashed green;">此DIV宽度150px,高度50px</div</body>
</html>

(3)div使用选择器设置宽高:把css样式改成选择器样式。

代码如下:

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title></title><style>.d1{width: 100px;height: 80px;border: plum 3px solid;}.d2{width: 300px;height: 140px;border: palevioletred 3px solid;}</style></head><body><div class="d1">设置宽高</div><div class="d2">用百分比设置宽高</div></body>
</html>

div高度的百分比设置问题:如果div的宽度设置了百分比,则相对其父元素相应改变宽度。但是div的高度则无法根据百分比相应改变。(加上*设置)

代码如下:

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title></title><style>.d1{width: 100px;height: 80px;border: plum 3px solid;}*{width: 100%;height: 100%;}.d2{width: 50%;height: 40%;border: palevioletred 3px solid;}</style></head><body><div class="d1">设置宽高</div><div class="d2">用百分比设置宽高</div></body>
</html>

 9.2 DIV+CSS的应用

标准流(normal flow)也叫常规流,文档流。在使用div、span、p标签进行布局时,默
认就是使用标准流进行布局。
标准流是垂直布局,是由块元素及其行内元素构成的。从上到下、从左到右按顺序摆放
好,默认情况下,互相之间不存在层叠现象。

1.DIV元素的布局技巧:由于用户的计算机显示屏分辨率不同,因此在布局页面时,要充分考虑页面内容的布局宽度情况,并保证页面整体内容在页面居中。一旦内容宽度超过显示宽度,页面将出现水平滚动条。应尽量保证网页只有垂直滚动条,才符合用户的习惯,所以高度不需要考虑,一般都是由页面内容决定网页高度即可。又因为浏览器的兼容情况,所以在布局页面前,设计者一定要把页面的默认边距清除。传统的表格布局时,可以使用属性“align:center;”设置表格居中问题,但是DIV的居中是没有属性可以设置的,只能通过CSS样式控制其位置。
使div 元素水平居中的方法有多种,常用的方法是用CSS设置div的左右边距。

代码如下:

<!DOCTYPE html>
<html><head><meta charset="utf-8" /><title></title><style type="text/css">*{width: 100%;height: 100%;}.d1{width: 100px;height: 80px;border: 2px solid red;}#d2{width: 50%;height: 40%;border: 2px solid black;}#d3{width: 50%;height: 40%;border: 2px solid black;margin-left: auto;margin-right: auto;}</style></head><body><div class="d1">设置宽高</div><div id="d2">利用百分比来设置宽高</div><div id="d3">DIV元素居中</div></body>
</html>

2.DIV元素的宽度自适应:有时会用到浮动效果,实现DIV元素的宽度自适应。宽度自适应是指两个并排的di.其中左边的div 为固定宽度,右边div则根据浏览器的宽度自动调整,这种用法常用于文章表和文章内容的页面布局。

代码如下:

<!DOCTYPE html>
<html><head><meta charset="utf-8" /><title></title><style type="text/css">*{width: 100%;height: 100%;}.d1{width: 100px;height: 80px;border: 2px solid red;}#d2{width: 50%;height: 40%;border: 2px solid black;}#d3{width: 50%;height: 40%;border: 2px solid black;margin-left: auto;margin-right: auto;}*{margin: 0;padding: 0;}#all{height: 100px;border: #77ff00 solid 3px;}#left{width: 100px;height: 100px;float: left;border: #0099ff solid 3px;}#right{height: 100px;margin-left: 100px;border: #4400ff solid 3px;}</style></head><body><div class="d1">设置宽高</div><div id="d2">利用百分比来设置宽高</div><div id="d3">DIV元素居中</div><div id="all"><div id="left">左边固定宽度</div><div id="right">右边宽度自适应</div></div></body>
</html>

 3. DIV内容的居中:平时说的div内容居中,只是保持div内容的水平居中。但是很多网站需要用到的是水平和垂直居中。这里用行高(line-height)属性来实现,当行高的值等于容器的高度值,内容便垂直居中。

代码如下:

<!DOCTYPE html>
<html><head><meta charset="utf-8" /><title></title><style type="text/css">*{width: 100%;height: 100%;}.d1{width: 100px;height: 80px;border: 2px solid red;}#d2{width: 50%;height: 40%;border: 2px solid black;}#d3{width: 50%;height: 40%;border: 2px solid black;margin-left: auto;margin-right: auto;}*{margin: 0;padding: 0;}#all{height: 100px;border: #77ff00 solid 3px;}#left{width: 100px;height: 100px;float: left;border: #0099ff solid 3px;}#right{height: 100px;margin-left: 100px;border: #4400ff solid 3px;}#d4{width: 300px;height: 100px;border: brown solid 3px;text-align: center;line-height: 100px;/*行高必须和高度一样*/}</style></head><body><div class="d1">设置宽高</div><div id="d2">利用百分比来设置宽高</div><div id="d3">DIV元素居中</div><div id="all"><div id="left">左边固定宽度</div><div id="right">右边宽度自适应</div></div><div id="d4">DIV内容居中</div></body>
</html>

4. DIV元素的嵌套 :传统的表格布局中,搜索引擎如果遇到多层表格嵌套时,可能抓取不到3层以上的内容,或者会跳过嵌套的内容直接放弃整个页面。而DIV+CSS 布局则不会存在这样的问题,为了实现复杂的布局结构,div元素也需要互相嵌套。但在布局页面时尽量少嵌套,否则将影响浏览器对代码的解析速度。

代码如下:

<!DOCTYPE html>
<html><head><meta charset="utf-8" /><title>第九章</title><style>.all{width: 700px;width: 700px;border: 2px solid red;margin: 0px auto;}.top{width: 700px;height: 100px;background-color: lightcyan;}.main{width: 700px;height: 520px;}.left{width: 180px;height: 500px;background-color: yellow;float: left;margin: 10px;}.right{width: 480px;height: 500px;background-color: lightgreen;float: left;margin: 10px;}.footer{width: 700px;height: 80px;background-color: lightgray;}</style></head><body><div class="all"><div class="top"></div><div class="main"><div class="left"></div><div class="right"></div></div><div class="footer"></div></div></body>
</html>

9.3 DIV+CSS的典型布局 

设计者为了让页面外观与结构分离,就要用CSS 样式来规范布局。使用CSS 释式可:让代码更加简洁和结构化,使站点的访问和维护更加容易。
网页设计的第一步是版面布局的设计。通过前面的学习,我们已经对页面布局的技巧了基本理解。本节将结合前面知识,展示目前较为常用的CSS布局样式。

1.左中右布局:左中右布局在网页设计时最为常用,即 div-lef 是导航菜单,div-min是视觉集中点,放置主要内容,div-right 是表单或链接等。而左中右三个区域一并被包含在一个大的 div-all 中。

代码如下:

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title></title><style>*{margin: 10px auto;padding: 10px auto;font-size: large;}.all{background-color: red;width: 700px;height: 500px;}.left,.main,.right{text-align: center;height: 480px;line-height: 480px;float: left;}.left{background-color: antiquewhite;width: 150px;}.main{background-color: lightcyan;width: 400px;}.right{background-color: antiquewhite;width: 150px;}</style></head><body><div class="all"><div class="left">导航菜单</div><div class="main">视觉集中区域,主要内容</div><div class="right">表单或链接</div></div></body>
</html>

2.上中下布局:上中下布局符合许多网站共同的特点,即 div-top是导航或者楼告,dr-main 是视觉集中点,放置主要内容,div-footer 是版权信息等。而上中下三个区-并被包含在一个大的 div-all中。

代码如下:

<html><head><meta charset="utf-8"><title></title><style>*{margin: 0px auto;padding: 0px auto;font-size: large;}.all{background-color: red;text-align: center;width: 700px;height: 500px;}.top{background-color: antiquewhite;height: 80px;width: 680px;line-height: 80px;}.main{background-color: lightcyan;width: 680px;height: 340px;line-height: 340px;}.footer{background-color: antiquewhite;width: 680px;height: 80px;line-height: 80px;}</style></head><body><div class="all"><div class="top">导航或者横幅广告</div><div class="main">视觉集中区域,主要内容</div><div class="footer">版权信息</div></div></body>
</html>

 3.混合布局:在了解左中右和上中下布局之后,混合布局也就不难理解了,混合布局也可以叫缘合整布局。混合布局可以在一列或一行布局的基础之上,分为多列或多行布局。网页布的精陶普遍都是三列布局,或者可以根据实际需求,对网页再进行划分。

代码如下:

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title></title><style>*{margin: 0 auto;padding: 0 auto;width: 100%;height: 100%;}.all{border: 2px dashed red;width: 95%;height: 100%;}.top{width: 100%;height: 15%;background-color: pink;}.main{width: 100%;height: 75%;}.left{background-color: yellow;width: 20%;float: left;}.center{background-color: lightcyan;width: 60%;float: left;}.right{background-color: yellow;}.footer{width: 100%;height: 10%;background-color: pink;}</style></head><body><div class="all"><div class="top"></div><div class="main"><div class="left"></div><div class="center"></div><div class="right"></div></div><div class="footer"></div></div></body>
</html>

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/472276.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

QT QLineEdit失去焦点事件问题与解决

本文介绍如何获得QLineEdit的失去焦点事件和获得焦点的输入框也会触发失去焦点事件的问题&#xff01; 目录 一、QLineEdit获得失去焦点事件 1.自定义类继承自QLineEdit 2.重写 focusOutEvent 3.使用 二、失去焦点事件问题 1.问题描述 2.问题解决 三、源码分享 lineed…

微信小程序navigateTo:fail webview count limit exceed

theme: nico 你们好&#xff0c;我是金金金。 场景 uniapp编写微信小程序&#xff0c;使用uni.navigateTo跳转的过程中报错如下&#xff1a; 报错意思也非常明显了&#xff1a;errMsg":"navigateTo:fail webview 数量超出限制 排查 排查之前我先贴一下代码 代码非…

HarmonyOS ArkTs 解决流式传输编码问题

工作日志 日期&#xff1a;2024-11-15 标题&#xff1a;HarmonyOS ArkTs 解决流式传输编码问题 问题描述 问题&#xff1a;在处理流式数据的 HTTP 请求时&#xff0c;服务器返回的数据存在编码问题&#xff0c;导致数据无法正确地解码为字符串。部分数据在解码后出现了乱码…

Android Settings 单元测试 | 如何运行单元测试?

背景 在Android Settings 单元测试 | Telephony Network 模块 APN 案例中粗略介绍了单元测试逻辑内容&#xff0c;但是在独立APK里面如何将单元测试跑起来还是有疑问&#xff0c;因为APP不能直接install&#xff0c;无法借助Android Studio直接Run&#xff0c;在安装的一步会报…

flutter字体大小切换案例 小字体,标准字体,大字体,超大字体案例

flutter字体大小切换案例 小字体&#xff0c;标准字体&#xff0c;大字体&#xff0c;超大字体案例 Android iOS设备带有选择记录 我的flutter项目版本 environment: sdk: ‘>3.4.4 <4.0.0’ 图片案例 pubspec.yaml 添加依赖 # 屏幕尺寸适配 https://github.com/OpenF…

编译原理(手绘)

大家好&#xff0c;今天给大家分享一下我自己对c语言编译链接的一点见解&#xff08;本人是学生&#xff0c;有记笔记的习惯&#xff09;&#xff0c;那么今天就给大家分享我的笔记。 以上只是我本人的一些见解&#xff0c;并非绝对&#xff0c;欢迎大家一起交流。 那么今天分…

跳房子(弱化版)

题目描述 跳房子&#xff0c;也叫跳飞机&#xff0c;是一种世界性的儿童游戏&#xff0c;也是中国民间传统的体育游戏之一。 跳房子的游戏规则如下&#xff1a; 在地面上确定一个起点&#xff0c;然后在起点右侧画 n 个格子&#xff0c;这些格子都在同一条直线上。每个格子内…

初识Linux · 共享内存

目录 理解共享内存 Shared memmory code 理解共享内存 前文介绍的管道方式的通信&#xff0c;本文介绍的是进程通信的另外一种方式&#xff0c;即共享内存。但是这种通信方式的特点是只能本地通信&#xff0c;并且不像管道那样有保护机制&#xff0c;这里是没有的。 我们通…

机器学习day5-随机森林和线性代数1

十 集成学习方法之随机森林 集成学习的基本思想就是将多个分类器组合&#xff0c;从而实现一个预测效果更好的集成分类器。大致可以分为&#xff1a;Bagging&#xff0c;Boosting 和 Stacking 三大类型。 &#xff08;1&#xff09;每次有放回地从训练集中取出 n 个训练样本&…

Essential Cell Biology--Fifth Edition--Chapter one (6)

1.1.4.4 Internal Membranes Create Intracellular Compartments with Different Functions [细胞膜形成具有不同功能的细胞内隔室] 细胞核、线粒体和叶绿体并不是真核细胞中唯一的膜包围细胞器。细胞质中含有大量的[ a profusion of]其他细胞器&#xff0c;这些细胞器被单层膜…

基于VUE实现语音通话:边录边转发送语言消息、 播放pcm 音频

文章目录 引言I 音频协议音频格式:音频协议:II 实现协议创建ws对象初始化边录边转发送语言消息 setupPCM按下通话按钮时开始讲话,松开后停止讲话播放pcm 音频III 第三库recorderplayer调试引言 需求:电台通讯网(电台远程遥控软件-超短波)该系统通过网络、超短波终端等无线…

政务数据治理专栏开搞!

写在前面 忙忙碌碌干了一年政务数据治理的工作&#xff0c;从法人数据到自然人&#xff0c;从交通到地理信息等等&#xff0c;突发想法开一个专栏讲一讲政务数据遇到的问题&#xff0c;以及治理的成效&#xff0c;或许有朋友爱看。 政务数据&#xff0c;又称之为政务数据资源&a…

CondaError: Run ‘conda init‘ before ‘conda activate‘解决办法

已经执行了conda init&#xff0c;但是还是会报错CondaError: Run ‘conda init’ before ‘conda activate’ 原因&#xff1a;权限不够 解决办法&#xff1a;以管理员身份运行cmd&#xff0c;然后进入要操作的文件夹下&#xff0c;重新执行 conda init 和 conda activate 就可…

【全面系统性介绍】虚拟机VM中CentOS 7 安装和网络配置指南

一、CentOS 7下载源 华为源&#xff1a;https://mirrors.huaweicloud.com/centos/7/isos/x86_64/ 阿里云源&#xff1a;centos-vault-7.9.2009-isos-x86_64安装包下载_开源镜像站-阿里云 百度网盘源&#xff1a;https://pan.baidu.com/s/1MjFPWS2P2pIRMLA2ioDlVg?pwdfudi &…

软考教材重点内容 信息安全工程师 第 4 章 网络安全体系与网络安全模型

4,1 网络安全体系的主要特征: (1)整体性。网络安全体系从全局、长远的角度实现安全保障&#xff0c;网络安全单元按照一定的规则&#xff0c;相互依赖、相互约束、相互作用而形成人机物一体化的网络安全保护方式。 (2)协同性。网络安全体系依赖于多种安全机制&#xff0c;通过各…

让空间计算触手可及,VR手套何以点石成金?

引言 如何让一位母亲与她去世的小女儿“重逢”&#xff1f;韩国MBC电视台《I Met You》节目实现了一个“不可能”心愿。 在空旷的绿幕中&#xff0c;母亲Jang Ji-sung透过VR头显&#xff0c;看到了三年前因白血病去世的女儿Nayeon。当她伸出双手&#xff0c;居然能摸到女儿的…

[Admin] Dashboard Filter for Mix Report Types

Background RevOps team has built a dashboard for sales team to track team members’ performance, but they’re blocked by how to provide a manager view based on sales’ hierarchy. Therefore, they seek for dev team’s help to clear their blocker. From foll…

WPF中如何使用区域导航

1.创建一个Prism框架的项目并设计好数据源 User如下&#xff1a; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;namespace WPF练习17区域导航.Models {public class User{public int UserId { get; …

AR眼镜方案_AR智能眼镜阵列/衍射光波导显示方案

在当今AR智能眼镜的发展中&#xff0c;显示和光学组件成为了技术攻坚的主要领域。由于这些组件的高制造难度和成本&#xff0c;其光学显示模块在整个设备的成本中约占40%。 采用光波导技术的AR眼镜显示方案&#xff0c;核心结构通常由光机、波导和耦合器组成。光机内的微型显示…

一文学会docker中搭建kali

一文学会docker中搭建kali 本文环境&#xff1a;部署好docker的ubuntu系统主机一台 直接pull对应的镜像&#xff1a; docker pull kalilinux/kali-rolling 然后通过端口映射&#xff0c;将本地100端口映射到容器的22端口&#xff0c;就可以ssh了 docker run -it -p 100:22…