`
baby69yy2000
  • 浏览: 187888 次
  • 性别: Icon_minigender_1
  • 来自: 自己输入城市...
社区版块
存档分类
最新评论

CSS的多态现象

    博客分类:
  • CSS
阅读更多
http://bbs.blueidea.com/thread-2875900-1-1.html
body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,button,textarea,p,blockquote,th,td{margin:0;padding:0;}
body{font:normal 15px/20px "Courier New","Verdana";}
ol,ul{list-style: none;}
ul{margin-left:0;padding-left:0;}
img,fieldset{border:0;}
table{border-collapse:collapse;border-spacing:0;}
strong{font-weight:bold;}
h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal;}
caption,th{text-align:left;}
q:before,q:after {content:'';}
a{cursor:pointer;color:#333;text-decoration:none;}
a:hover{color:#9c0000;text-decoration:underline;}
.clear{display:block; clear:both;}

body, button, input, select, textarea {
                font: 16px / 1 Tahoma, Helvetica, Arial, "\5b8b\4f53", sans-serif;
            }
“\5b8b\4f53″ 就是 “宋体”。用 unicode 表示

width
width、height、overflow、margin-top、margin-bottom对内联元素完全不起作用。
width: auto会把浮动元素缩减到其内容的宽度。
width: auto会把块状元素扩展其父元素的宽度。

width: 100%,只要浮动元素和块状元素没有边框(border)、内边距(padding)、和外边距(margin),width: 100%就会把他们拉至父元素的宽度。
width: 100%,也会把有边框和内边距的表格拉至它们父元素的宽度。
width: 100%,会令绝对定位元素的宽度与它的定位最近的祖先元素一样,而与它的父元素没什么关系。
例子:
test会和div1的宽度一样100px
<!-- CSS代码 -->
.div1 { position: relative; width: 100px; }
.div2 { width: 200px; height: 200px; border: 5px solid red; }
.test { display: block; position: absolute; width: 100%; height: 100px; border: 2px solid black; }
<!-- HTML代码 -->
<div class="div1">
   <div class="div2">
     <span class="test">内容</span>
   </div>
</div>


五种盒模型特点:
===========================================

1.内联盒模型特点
按从左至右排列的。
当超过它们最近的祖先元素时,便换到下一行。
width、height、overflow、margin-top、margin-bottom对内联元素完全不起作用。
内联元素用line-height设置行的高度。


2.块状盒模型特点
按从上至下排列的。
width: auto、height: auto是默认值,使它与父元素相一致。
width: 100% == 父元素的宽度,width: 120%会超过父元素的宽度.
*margin-left: auto会令块状元素排列在父元素的右侧。
*margin-right: auto会令块状元素排列在父元素的左侧。
*margin-left和margin-right都auto排列在父元素的中间.


3.表格盒模型特点
表格有外边距,没有内边距。
单元格有内边距,没有外边距。
不能把overflow应用于表格,应把overflow: hidden赋给单元格.
border-collapse决定了邻近的边框是否合并为一个。分离(separate), 合并(collapse)。
table-layout决定了是固定大小(fixed)还是auto.


4.绝对定位盒模型特点
它是相对于(relative)最近定位祖先元素来定位的。
当width有个值,left有个值,right:auto的时候,从左侧偏离。
margin为正的时候靠近容器中心,为负远离中心。
width: 100%会与祖先的宽度相等。


5.浮动盒模型特点
<!-- CSS代码 -->
.container{
   border:1px solid black;
   width: 200px;
   height: 300px;
}

.box{
   border:1px solid black;
   width:50px;
   height:auto;
   float:left;
   margin: 10px;
   padding:2px;
}

<!-- HTML代码 -->
<div class="container">
   <div>前</div>
   <div class="box">float1</div>
   <div class="box">float2</div>
   <div class="default">后</div>
</div>

上面的代码显示的效果会是这样的

float1 float2 后

我们看到"后"字也浮动了

添加下面的代码"后"字就不浮动了。
.default{clear:left;}


float1 float2


盒模型练习
===========================================

解决IE6 的浮动元素的双倍边距问题
对一个div设置了float:left 和 margin-left:100px 那么在IE6中,这个bug就会出现。您只需要多设置一个display即可,代码如下:
div {float:left;margin:40px;display:inline;}


将重要元素放置在屏幕中央
div.popup { height:400px; width:500px; position: absolute; top: 50%; left: 50%;}   
div.popup { margin-top: -200px; margin-left: -250px;}


内联元素垂直居中对齐
可以把line-height设置成一个大于高度的值。
<p class="center">垂直居中对齐</p>
.center{width:300px; height:50px; line-height:51px; text-align:center;}


<!--.main不要设置高度,用padding代替.注意下txtSearch后面的换行,"/></form>"没有空格。vertical-align只能对内联元素起作用.-->
body{margin:0; padding:0; font:18px Arial, Helvetica, sans-serif;}
form{display:inline;}

.main{width:500px; padding:10px; border:1px solid black; text-align:center;}
.mid{vertical-align:middle;  margin:0 10px;}
.txtSearch{padding:5px;}

<div class="main"><span class="mid">搜索:</span><form><input type="text" size="28" class="mid txtSearch" 
/></form><img src="../images/searchbutton.gif" class="mid" /></div>


拉伸的静态块状元素
.parent{
	width:200px; height:140px;
	border:1px solid black;
	margin-left:200px; margin-top: 300px;
	padding:0px 10px 10px;
}

.s1{
	border-bottom:1px solid black;
	background-color:gold;
	width:auto;
	margin-left:-10px;
	margin-right:-10px;
}
<!-- HTML代码 -->
<div class="parent">
	<div class="s1"><span>拉伸的静态块状元素</span></div>
</div>


相对浮动定位
可以用position:relative对浮动元素进行定位。配合使用left、right、margin、z-index。
<!-- CSS代码 -->
.parent{
   position:relative;
   width: 500px;
   height: 300px;
   border: 1px solid black;
   margin: 0 auto;
}
			
.float{
   position:relative;
   float:left;
   width: 100px;
   height: 50px;
   border: 1px solid black;
   margin-right: 20px;
}
			
.relative1{
   top: 20px; left:30px;
   background-color: gray;
}
			
.relative2{
   top: 20px; left:60px;
   background-color: gold;
}
<!-- HTML代码 -->
<div class="parent">
   <div class="relative1 float">相对浮动1</div>
   <div class="relative2 float">相对浮动2</div>
</div>


浮动居中
#Layer1{float:left; position:relative; left:50%;}
span{position:relative; left:-50%;}
<div id="Layer1"><span>float center</span></div>

===========================================

表格
1.列宽度:
百分比宽度>固定宽度>自动宽度。
一种给列设宽度的表较好的方法是给表格的第一行的每个单元格都设定一个宽度。

2.包裹列
将表格设为table-layout:auto; width:auto; 单元格width:auto;就能达到包裹列的效果,这些都是默认规则。
分享到:
评论

相关推荐

    Java面试资料-高清完整PDF版(集合、IO、多线程、反射前端知识、框架).rar

    死锁、活锁、饥饿现象也是面试中常见的问题。 5. **反射**:Java反射机制允许在运行时检查类、接口、字段和方法的信息,甚至可以动态创建对象和调用方法。这是许多高级功能,如插件系统、序列化和动态代理的基础。 ...

    python入门到高级全栈工程师培训 第3期 附课件代码

    10 粘包现象 11 粘包解决方法 第31章 01 上节课复习 02 socketserver实现并发 03 socketserver模块介绍 04 socketserver源码分析tcp版本 05 socketserver源码分析udp版 06 ftp作业要求讲解 07 补充:认证客户端...

    使用Java实现一个游戏引擎.zip

    首先,我们需要了解Java的基础知识,包括面向对象编程(OOP)概念、类与对象、继承、封装和多态。这些是构建任何复杂系统,包括游戏引擎,的基础。在Java中,我们可以利用包(package)来组织代码,提高代码的可维护...

    2021-2022计算机二级等级考试试题及答案No.18125.docx

    - 在同一个方法中,由于参数类型的不同,导致执行效果各异的现象也是多态的一种体现。 因此,该解释是正确的。 ### 20. RAM 的概念 - 随机访问存储器(RAM)是计算机中用于存储正在使用的程序和数据的临时存储器...

    进入IT企业必读的324个Java面试题 高清 PDF

    - **面向对象**:理解类、对象、继承、封装、多态等面向对象编程的核心原则。 - **集合框架**:掌握List、Set、Map等集合类的使用和区别。 #### 2. Java进阶技术 随着面试深度的增加,对Java进阶技术的掌握也是...

    JAVA源码JAVA办公自动化系统(源代码+论文+外文翻译)

    Java支持封装、继承、多态等面向对象特性,了解并熟练运用这些概念是编写高质量Java程序的基础。 ### 二、办公自动化系统设计与实现 #### 2.1 办公自动化系统概述 办公自动化系统(OA系统)是指利用计算机硬件、软件...

    python3.5全栈工程师零基础到项目实战全套

    - **死锁问题**:分析和避免线程间的死锁现象。 ##### 10.Python3.5的多进程 - **进程基础**:理解进程的概念以及进程间通信的重要性。 - **进程池**:使用multiprocessing模块创建和管理进程池。 - **进程同步**...

    JavaScript权威指南第6版

    - **封装与多态**:讨论了如何通过私有属性和方法实现封装,以及多态性在JavaScript中的实现方式。 - **错误处理**: - **异常捕获**:讲解了try-catch-finally语句的使用方法。 - **自定义异常**:介绍了如何抛...

    2021-2022计算机二级等级考试试题及答案No.12235.docx

    在面向对象编程中,同一方法由于参数类型不同而导致执行效果各异的现象是多态性的体现。 **正确答案**:在面向对象语言中,接口的多种不同的实现方式即为多态。 ### Java 类的静态初始化 21. **知识点解析**:此...

    optica_lumina

    - `public`目录:放置静态资源,如CSS、JavaScript和图片。 - `database`目录:可能包含SQL脚本或数据库迁移文件。 - `vendor`目录:Composer管理的第三方库。 这个项目可能利用PHP处理光学数据,例如计算光的折射...

Global site tag (gtag.js) - Google Analytics