<!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-混合布局的几种方法(正确的方法和错误的原因)的更多相关文章

  1. 实现CSS等分布局的4种方式

    × 目录 [1]float [2]inline-block [3]table[4]flex 前面的话 等分布局是指子元素平均分配父元素宽度的布局方式,本文将介绍实现等分布局的4种方式 思路一: flo ...

  2. css左右布局的几种实现方式和优缺点

    记录一下左右布局的实现方式,实现的具体效果是,左侧固定宽度,高度适中等于父元素的高度,父元素的高度由右侧内容决定: html代码如下: <div class="parent" ...

  3. 实现CSS等分布局的5种方式

    前面的话 等分布局是指子元素平均分配父元素宽度的布局方式,本文将介绍实现等分布局的5种方式 float [思路一]float 缺点:结构和样式存在耦合性,IE7-浏览器下对宽度百分比取值存在四舍五入的 ...

  4. css居中布局的几种方式

    一.水平居中 若是行内元素,则直接给其父元素设置text-align: center即可 若是块级元素,则直接给该元素设置margin: 0 auto即可 若子元素包含浮动元素,则给父元素设置widt ...

  5. css布局 - 两栏自适应布局的几种实现方法汇总

    这种两列布局的样式是我们在平时工作中非常常见的设计,同时也是面试中要求实现的高频题.很有必要掌握以备不时之需: 整理了几种实现方法,当然,风骚的代码不止这几种能实现,欢迎各位的补充. 方法汇总目录 简 ...

  6. CSS三栏布局的四种方法

    总括: 不管是三栏布局还是两栏布局都是我们在平时项目里经常使用的,也许你不知道什么事三栏布局什么是两栏布局但实际已经在用,或许你知道三栏布局的一种或两种方法,但实际操作中也只会依赖那某一种方法,本文具 ...

  7. CSS系列,三栏布局的四种方法

    三栏布局.两栏布局都是我们在平时项目里经常使用的,今天我们来玩一下三栏布局的四种写法,以及它的使用场景. 所谓三栏布局就是指页面分为左中右三部分然后对中间一部分做自适应的一种布局方式. 1.绝对定位法 ...

  8. CSS实现垂直居中的5种方法

    利用 CSS 来实现对象的垂直居中有许多不同的方法,比较难的是选择那个正确的方法.我下面说明一下我看到的好的方法和怎么来创建一个好的居中网站. 使用 CSS 实现垂直居中并不容易.有些方法在一些浏览器 ...

  9. 提高CSS文件可维护性的五种方法

    当完成一项前端的工作之后,许多人都会忘记该项目的结构与细节.然而代码并不是马上就能完全定型,在余下的时间里还有不断的维护工作,而这些工作也许不会是你自己完成.所以,结构优良的代码能很大程度上优化它的可 ...

随机推荐

  1. linux svn搭建

    1 安装: yum install subversion 2 查看svn安装信息: rpm -ql subversion 3 创建svn根目录: svnserve -d -r /svn 4 进入/sv ...

  2. C++ vector用法

    在c++中,vector是一个十分有用的容器,下面对这个容器做一下总结. 1 基本操作 (1)头文件#include<vector>. (2)创建vector对象,vector<in ...

  3. linux系统下who&who am i与whoami的区别,以及与select * from dba_users的区别

    who am i :表示登录此虚拟机(或者计算机)时,使用的操作系统级别用户名称 whoami:表示当前正在使用的操作系统级别用户名称 select username from dba_users;查 ...

  4. git 删除和重命名文件

    1. 删除文件 git rm a.txt git rm--cached filename 会删除索引中的文件并把它保留在工作目录中 而 git rm 则会将文件从索引和工作目录中都删除 文件删除后的恢 ...

  5. 让nodeJS支持ES6的词法----babel的安装和使用

    要使用Babel, 我们需要nodeJS的环境和npm, 主要安装了nodeJS, npm就默认安装了 , 现在安装nodeJS很简单了, 直接下载安装就好了: 安装es-checker 在使用Bab ...

  6. JS简单加密

    //简单的jS加密解密//code为对应的字符串,h为(2,8,10,16)就是要转成的几进制function en(code, h) { var monyer = new Array();var i ...

  7. java中是否会存在内存泄漏

    会.java导致内存泄露的原因很明确:长生命周期的对象持有短生命周期对象的引用就很可能发生内存泄露,尽管短生命周期对象已经不再需要,但是因为长生命周期对象持有它的引用而导致不能被回收,这就是java中 ...

  8. 【USACO 2.1】Healthy Holsteins

    /* TASK: holstein LANG: C++ URL: http://train.usaco.org/usacoprob2?a=SgkbOSkonr2&S=holstein SOLV ...

  9. bestcoder杯回顾

    题目列表:hdu5214~5223 5214: 当时第一反应是由递推公式推出通项公式,事实证明这就是作!大!死! 因为通项公式是这样的:L[n]=a^(n-1)*(b+L[1])-b 于是就需要快速幂 ...

  10. [NOIP2013] 普及组

    计数问题 纯模拟 #include<cstdio> #include<iostream> using namespace std; int main(){ int n,x; c ...