CSS-混合布局的几种方法(正确的方法和错误的原因)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>混合布局编程挑战</title>
<style type="text/css">
/*
body{ margin:0; padding:0; font-size:30px; color:#fff}
.top{width:100%;background-color:#ccc;}
.main{width:100%;height:350px;overflow:hidden;background-color:#f90;}
.left{ width:200px;height:inherit;background-color:#6495ED;float: left;}
.right{width:55%;height:inherit;float:right;background-color:lightgreen;}
.foot{width:100%;background-color:#DC143C;}
*
* 1-1:我打算是这么写的,很不高级,尤其是右边,根据页面的变化,他会向左挤掉left;看慕课兄的代码如下:*/
.top{width:100%; height:50px;background:#ccc;}
.main{width: 100%;/*width:1000px;*/ position:relative;height:300px;background:#f90;}
.foot{width:100%;height:100px;background-color:#DC143C;}
/*.left{width:200px;height:300px;background:#6495ED;position:absolute;}*/
/*第二种也有问题*/
/*2-2:为什么非要absolute呢?他是相对于body呀在这里,当main有定值时还通用吗?*/
/*2-3:实验证明是不可以的*/
/*2-4:既是他这中方法,也是让right盒子一直超出,还有水平滚动条。*/
/*.right{margin-left:210px;width:100%;height:300px;background:lightgreen;position:absolute;}*/
/*2-1:通过position:absolute和定值margin-left,这样width就可以设置成100%,进而成了响应式,不管窗口多大都不会挤掉left的效果*/
/*1-1:其实一开始的让右边自适应,我想到的是width100%,但是会把left覆盖住.我这就没想到margin-left呢!*/
/*第三种方法是可以*/
.left{width: 200px;height: 300px;background:#6495ED;position: absolute;left:0;top: 0;}
/*用left:0,top:0,固定left的位置。然后用right的margin-left把左边的位置给让出来*/
.right{height:300px;/*width:100%;*/background:lightgreen;margin-left: 210px;}
/*right不设置宽度,如果设置了宽度100%,就会出现水平条*/
/*第四种也可以*/
/*.main{width:100%;height:300px;background-color:red;}
.left{ width:200px;height:300px;background-color:blue;float:left;}
.right{height:300px;background-color:green;position:absolute;left:210px;right:0px;}*/
/*方法是利用左侧浮动固定宽度,右侧通过绝对定位,*//*right不设置宽度,如果设置了宽度100%,就会出现水平条*/
/*
总结
* 普遍就是通过position的相对,绝对定位,++top,right,left;的相互配合,或通过margin的移动,实现效果。这里foot处没有清除浮动。看上去没什么影响就不清楚了。
*
* */
</style>
</head>
<body>
<div class="top">top</div>
<div class="main">
<div class="right">right</div><!--实现右侧先加载-->
<div class="left">left</div>
</div>
<div class="foot">foot</div>
</body>
</html>
CSS-混合布局的几种方法(正确的方法和错误的原因)的更多相关文章
- 实现CSS等分布局的4种方式
× 目录 [1]float [2]inline-block [3]table[4]flex 前面的话 等分布局是指子元素平均分配父元素宽度的布局方式,本文将介绍实现等分布局的4种方式 思路一: flo ...
- css左右布局的几种实现方式和优缺点
记录一下左右布局的实现方式,实现的具体效果是,左侧固定宽度,高度适中等于父元素的高度,父元素的高度由右侧内容决定: html代码如下: <div class="parent" ...
- 实现CSS等分布局的5种方式
前面的话 等分布局是指子元素平均分配父元素宽度的布局方式,本文将介绍实现等分布局的5种方式 float [思路一]float 缺点:结构和样式存在耦合性,IE7-浏览器下对宽度百分比取值存在四舍五入的 ...
- css居中布局的几种方式
一.水平居中 若是行内元素,则直接给其父元素设置text-align: center即可 若是块级元素,则直接给该元素设置margin: 0 auto即可 若子元素包含浮动元素,则给父元素设置widt ...
- css布局 - 两栏自适应布局的几种实现方法汇总
这种两列布局的样式是我们在平时工作中非常常见的设计,同时也是面试中要求实现的高频题.很有必要掌握以备不时之需: 整理了几种实现方法,当然,风骚的代码不止这几种能实现,欢迎各位的补充. 方法汇总目录 简 ...
- CSS三栏布局的四种方法
总括: 不管是三栏布局还是两栏布局都是我们在平时项目里经常使用的,也许你不知道什么事三栏布局什么是两栏布局但实际已经在用,或许你知道三栏布局的一种或两种方法,但实际操作中也只会依赖那某一种方法,本文具 ...
- CSS系列,三栏布局的四种方法
三栏布局.两栏布局都是我们在平时项目里经常使用的,今天我们来玩一下三栏布局的四种写法,以及它的使用场景. 所谓三栏布局就是指页面分为左中右三部分然后对中间一部分做自适应的一种布局方式. 1.绝对定位法 ...
- CSS实现垂直居中的5种方法
利用 CSS 来实现对象的垂直居中有许多不同的方法,比较难的是选择那个正确的方法.我下面说明一下我看到的好的方法和怎么来创建一个好的居中网站. 使用 CSS 实现垂直居中并不容易.有些方法在一些浏览器 ...
- 提高CSS文件可维护性的五种方法
当完成一项前端的工作之后,许多人都会忘记该项目的结构与细节.然而代码并不是马上就能完全定型,在余下的时间里还有不断的维护工作,而这些工作也许不会是你自己完成.所以,结构优良的代码能很大程度上优化它的可 ...
随机推荐
- 如何解决Windows 10系统下设备的声音问题
如何解决Windows 10系统下设备的声音问题? 请阅读下面的说明来解决Windows 10设备上的声音问题. 1. 检查设备管理器 打开开始菜单,键入设备管理器, 从出现的结果中选择并打开它. 在 ...
- CentOS6.6搭建LNMP环境
CentOS6.6搭建LNMP环境 1.设置yum源,本地安装依赖包 1 yum -y install gcc gcc-c++ automake autoconf libtool make 2.下载依 ...
- ASP.NET 使用Ajax
转载: http://www.cnblogs.com/dolphinX/p/3242408.html $.ajax向普通页面发送get请求 这是最简单的一种方式了,先简单了解jQuery ajax的语 ...
- 十天冲刺---Day4
站立式会议 站立式会议内容总结: git上Issues新增内容: 燃尽图 照片 队伍度过了一次难关,刚开始学习的难关. 但还是存在进度较慢的问题. 队伍内相互理解是关键. 要时刻了解队友的情况.
- 模拟发送http请求
1.httpie 2.postman:Postman是一款功能强大的网页调试与发送网页HTTP请求的Chrome插件. 3.fiddler
- Java网络编程——UDP实例
UDPSendDemo import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamRea ...
- canvas缓动
通过不断地将与目标的距离和系数相乘来让物体实现远快近缓的运动. 如图所示可以做出缓动效果,具体代码如下 var canvas = document.getElementById("canva ...
- 【BZOJ 3531】【SDOI 2014】旅行
因为有$10^5$个宗教,需要开$10^5$个线段树. 平时开的线段树是“满”二叉树,但在这个题中代表一个宗教的线段树管辖的区间有很多点都不属于这个宗教,也就不用“把枝叶伸到这个点上”,所以这样用类似 ...
- python复习
1.input和raw_input的区别 input假设输入的都是合法的python表达式,如输入字符串时候,要加上引号,而raw_input都会将所有的输入作为原始数据 2.原始字符串前面加上r,e ...
- 81B
模拟 字符串必须先清零,要不会出现玄学的问题 #include<iostream> #include<cstdio> using namespace std; string s ...