资源描述
以普通权限用户运行 MS SQL 2000 数据库的操作步骤
特别说明:
本文主要针对虚拟主机商,特别是WEB空间与MS SQL 2000数据库在同一个服务器的情况。
将 MS SQL 2000 降低为普通权限后,会导致 MS SQL 2000 无法执行xp_cmdshell 等扩展,虽然安全性大大提高了,但如果你的程序依赖xp_cmdshell 等扩展,则本文不适用。
由于操作步骤比较多,也比较复杂,请一定先测试,然后再在服务器里设置。如有疑问或问题,可以咨询我们的客服人员,官方网站
1、检查当前 MS SQL 2000 的运行时用户
MS SQL 2000 安装完成后,可能会以 SYSTEM 系统权限运行,如下图所示
从上图,我们可以看到 MS SQL 2000 是SYSTEM系统权限在运行,攻击者很容通过特殊的 SQL语句执行命令,提权成功后,直接以 SYSTEM 权限执行命令,比如建立新用户、开启3389远程桌面等。以及利用 SQL 2000 自带的 xp_cmdshell 扩展执行命令等,或恢复xp_cmdshell 等扩展。
另外,打开 MS SQL 2000 企业管理器,我们会看到
如果是SYSTEM权限运行,这里显示“系统账户”,也就是 SYSTEM 系统权限账户。
2、建立一个新用户,让 MS SQL 2000 以普通用户运行
如上图红色箭头,只选择
(1)“用户不能修改密码”
(2)“密码不过期”
其他2个选择取消
建立用户后,此用户名默认会加入到 USERS 组。
将此用户隶属的 users 组删除
3、对 MS SQL 2000 的安装盘,加入 mssql2000user 的“读取权限”的权限。不是“读取数据”的权限
假设安装在D:\mssql2000\MSSQL\ 目录下,那么对对D:盘赋予 mssql2000user“读取权限”的权限
我们这里的 D: 盘,默认只有
(1)administrators
(2)SYSTEM 权限
如果有其他用户,不要删除,以免其他程序无法工作。我们这里只增加一个权限
注意:
这里选择
(1)“只有该文件夹”
(2)读取权限
只选这2个,一定不要选错
4、对 MS SQL 2000 安装目录的权限进行设置。
修改 ms sq1l 2000 的安装目录,只给予
(1)administrators 完全控制
(2)SYSTEM 完全控制
只给与这2个权限。另外一个 mssql2000user 后一步加入。
我们这里的 MS SQL 2000 安装在 D:\mssql2000\MSSQL 目录里
这里可能有everyone 和 users ,或其他用户
此时,everyone 和 users 可能“继承”了上级目录权限,无法删除,先取消继承权限。
把上图的勾取消
复制上级目录的权限
这里勾选上,把这个目录的下级目录的权限给替换掉
点“是”
此时,就可以删除 everyone 和 users 了
只保留
(1)administrators 完全控制
(2)SYSTEM 完全控制
其他权限都删除掉,然后点“确定”。
5、打开企业管理器,修改 MS SQL 2000 的运行时权限
这里选择“本账户”,填写 mssql2000user 和密码,然后点“确定”
特别注意:点“确定”后,一般需要20-30秒左右,有时候会卡几分钟,属于正常情况。
这是我们看到 D:\mssql2000\MSSQL\ 目录的NTFS 权限已经重新配置过了。
Mssql2000user 也自动分配了权限。
打开 Windows 任务管理器,我们看到 sqlserr.exe 的运行时用户,已经变成了 mssql2000user ,此时 MS SQL 2000 以非常低的权限运行了,即使被攻击,或使用 xp_cmdshell 执行命令也基本没有任何攻击性。
6、降权后的影响,(1)数据导入与导出和(2)数据库还原与备份的问题
(1)由于 MS SQL 2000 是低权限“mssql2000user”运行,数据库备份和还原可能会受到影响,请参考解决方案。
例如,客户的WEB空间是 d:\home\web111\wwwroot ,降权后,MS SQL 2000 无法访问d:\home\web111\wwwroot 目录,同时也无法将数据库备份到这个目录了。此时安全性提高了,但客户无法自行备份数据库了。以前 MS SQL 2000 是 SYSTEM 系统权限运行,客户可以自己备份数据库。
处理办法是给予备份目录mssql2000user 的完全 NTFS 控制权限(不建议,因为这样会导致安全问题,除非特殊情况)。
对于导入或导出数据库数据,万网给出了一个操作步骤,可以参考万网的办法
MSSQL数据库从本地导入到主机服务器方法
mssql2000user 访问的目录权限有限,无法访问 其他目录
由于 NTFS 权限限制, mssql2000user 无法读写“其他目录”,可能导致备份到“其他目录”时失败,处理办法是 给予备份目录 mssql2000user 的完全 NTFS 控制权限。
7、设置完成
源码下载附录资料:web前端面试题
1. W3C标准有哪些?
W3C推行的主要规范有HTML,CSS,XML,XHTML和DOM(Document Object Model)。
2. 谈谈Js的内存泄露问题。
3. 谈谈对Html 5的了解。
4. 谈谈对CSS 3的了解。
5. 用js实现随即选取10--100之间的10个数字,存入一个数组,并排序。
var iArray = [];
funtion getRandom(istart, iend){
var iChoice = istart - iend +1;
return Math.floor(Math.random() * iChoice + istart;
}
for(var i=0; i<10; i++){
iArray.push(getRandom(10,100));
}
iArray.sort();
6. 把两个数组合并,并删除第二个元素。
var array1 = ['a','b','c'];
var bArray = ['d','e','f'];
var cArray = array1.concat(bArray);
cArray.splice(1,1);
7. Js面向对象的几种方式。
8. 请谈谈原型方式构造对象的特点。
9. 在Css中那个属性会影响dom读取文档流的顺序。
答: float属性。
10. 请介绍几种用div实现两列布局的方案(兼容),另外要考虑文档流的加载。
11. 谈谈css在浏览器中的兼容问题,详细谈谈IE6的一些bug,以及解决方案。
12. 谈谈你对闭包的理解。以及如何实现js方法的重写。
[HTML && CSS]
1.Doctype? 严格模式与混杂模式-如何触发这两种模式,区分它们有何意义?
首先我讲讲如何触发两种模式: 加入xml头部声明可以触发IE浏览器的Quirks mode,触发之后,浏览器解析方式就和IE5.5一样,拥有IE5.5一样的bug和其他问题,行为(Javascript)也是如此。 IE6的触发 在XHTML的DOCTYPE前加入XML声明 <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> IE7的触发 在XML声明和XHTML的DOCTYPE之间加入HTML注释 <?xml version="1.0" encoding="utf-8"?> <!-- ... and keep IE7 in quirks mode --> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> IE6和IE7都可以触发的 在HTML4.01的DOCTYPE文档头部加入HTML注释 <!-- quirks mode --> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 其次是这样的意义 各个浏览器的混杂模式,基本就是各个浏览器的私有模式,不相互兼容。所以,除非是为了兼容的问题,比如你不想修改很久很久以前做的IE ONLY的网页,否则刻意触发混杂模式没有任何意义。
2:行内元素有哪些?块级元素有哪些?CSS的盒模型?
一.行内元素和块级元素有哪些?
块级元素
<address>
information on author
<blockquote>
long quotation
<button>
push button
<caption>
table caption
<dd>
definition description
<del>
deleted text
<div>
generic language/style container
<dl>
definition list
<dt>
definition term
<fieldset>
form control group
<form>
interactive form
<h1>
heading
<h2>
heading
<h3>
heading
<h4>
heading
<h5>
heading
<h6>
heading
<hr>
horizontal rule
<iframe>
inline subwindow
<ins>
inserted text
<legend>
fieldset legend
<li>
list item
<map>
client-side image map
<noframes>
alternate content container for non frame-based rendering
<noscript>
alternate content container for non script-based rendering
<object>
generic embedded object
<ol>
ordered list
<p>
paragraph
<pre>
preformatted text
<table>
table
<tbody>
table body
<td>
table data cell
<tfoot>
table footer
<th>
table header cell
<thead>
table header
<tr>
table row
<ul>
unordered list
行内元素
<a>
anchor
<abbr>
abbreviated form
<acronym>
acronym
<b>
bold text style
<bdo>
I18N BiDi over-ride
<big>
large text style
<br>
forced line break
<button>
push button
<cite>
citation
<code>
computer code fragment
<del>
deleted text
<dfn>
instance definition
<em>
emphasis
<i>
italic text style
<iframe>
inline subwindow
<img>
Embedded image
<input>
form control
<ins>
inserted text
<kbd>
text to be entered by the user
<label>
form field label text
<map>
client-side image map
<object>
generic embedded object
<q>
short inline quotation
<samp>
sample program output, scripts, etc.
<select>
option selector
<small>
small text style
<span>
generic language/style container
<strong>
strong emphasis
<sub>
subscript
<sup>
superscript
<textarea>
multi-line text field
<tt>
teletype or monospaced text style
<var>
instance of a variable or program argument
二.行内元素与块级元素有什么不同?
1.尺寸-块级元素和行内元素之间的一个重要的不同点
行内元素和width
W3C CSS2 标准规定行内元素、非置换元素不会应用width属性。
以下例子中,对行内元素<a>应用了width:200px,你可以看到,根本就没有什么效果。
行内元素和height
W3C CSS2 标准规定行内元素、非置换元素不会应用height属性,但是盒子高度可以通过line-height来指定。
以下例子,对行内元素<a>应用了height:50px,你可以看到什么效果都没。
行内元素和padding
你可以给行内元素设置padding,但只有padding-left和padding-right生效。
以下例子,行内元素<a>应用了padding:50px。你可以看到对左右的内容有影响,但是对上下没影响。
行内元素和marging
margin属性也是和padding属性一样,对行内元素左右有效,上下无效。
下面的例子,对<a>应用了margin:50px,你可以看到左右边缘是生效了但是内容上下却没有。
记住对行内元素
设置宽度width 无效。
设置高度height 无效,可以通过line-height来设置。
设置margin 只有左右margin有效,上下无效。
设置padding 只有左右padding有效,上下则无效。注意元素范围是增大了,但是对元素周围的内容是没影响的,看图上效果就知道了
盒子模型
W3C 组织建议把所有网页上的对像都放在一个盒(box)中,设计师可以通过创建定义来控制这个盒的属性,这些对像包括段落、列表、标题、图片以及层。盒模型主 要定义四个区域:内容(content)、边框距(padding)、边界(border)和边距(margin)。对于初学者,经常会搞不清楚 margin,background-color,background- image,padding,content,border之间的层次、关系和相互影响。这里提供一张盒模型的3D示意图,希望便于你的理解和记忆。
每个HTML元素都可以看作一个装了东西的盒子,盒子里面的内容到盒子的边框之间的距离即填充(padding),盒子本身有边框(border),而盒子边框外和其他盒子之间,还有边界(margin)。
盒模型的实际宽度
关于盒模型,还有以下几点需要注意:
·对于块级元素(display:block),未浮动的垂直相邻元素的上边界和下边界会被压缩,例如:有上下2个元素,上元素的下边界为5px,下面元素的上边界为20px,则实际2个元素的间距为20px(2个边界值中较大的值)。如图所示。
注1. 块级元素(display: block)
每个块级元素都从一个新行开始,而且其后的元素也需另起一行开始,标题、段落、表格、层、body等都是块级元素。块级元素只能作为其他块级元素的子元素,而且需要一定的条件。
·内联元素,例如<a>、<span>等,定义上下边界不会影响到行高(line-height),内联元素距离上一行元素的距离由行高决定,而不是填充或边界。
注2. 内联元素(display:inline)
内联元素不需要在新行内显示,而且也不强迫其后的元素换行,如a、em、span等都为内联元素。内联元素可以为任何其他元素的子元素。
·浮动元素(无论左或者右浮动)边界不压缩,且若浮动元素不声明宽度,则其宽度趋向于0,即压缩到其内容能承受的最小宽度。
·如果盒中没有内容,则即使定义了宽度和高度都为100%,实际上只占0%,因此不会被显示,此点在采取层布局的时候需特别注意。
·边界值可为负,其显示效果各浏览器可能不相同。
·填充值不可为负。
·边框默认的样式(border-style)为不显示(none)。
3.CSS引入的方式有哪些? link和@import的区别是?
本质上,这两种方式都是为了加载CSS文件,但还是存在着细微的差别。
差别1:老祖宗的差别。link属于XHTML标签,而@import完全是CSS提供的一种方式。
link标签除了可以加载CSS外,还可以做很多其它的事情,比如定义RSS,定义rel连接属性等,@import就只能加载CSS了。
差别2:加载顺序的差别。当一个页面被加载的时候(就是被浏览者浏览的时候),link引用的CSS会同时被加载,而@import引用的CSS会等到页面全部被下载完再被加载。所以有时候浏览@import加载CSS的页面时开始会没有样式(就是闪烁),网速慢的时候还挺明显(梦之都加载CSS的方式就是使用@import,我一边下载一边浏览梦之都网页时,就会出现上述问题)。
差别3:兼容性的差别。由于@import是CSS2.1提出的所以老的浏览器不支持,@import只有在IE5以上的才能识别,而link标签无此问题。
差别4:使用dom控制样式时的差别。当使用javascript控制dom去改变样式的时候,只能使用link标签,因为@import不是dom可以控制的。
大致就这几种差别了(如果还有什么差别,大家告诉我,我再补充上去),其它的都一样,从上面的分析来看,还是使用link标签比较好。
标准网页制作加载CSS文件时,还应该选定要加载的媒体(media),比如screen,print,或者全部all等。这个我到CSS高级教程中再给大家介绍。
注:
1,网友comehope在留言中提出了另一种区别。
差别5:@import可以在css中再次引入其他样式表,比如可以创建一个主样式表,在主样式表中再引入其他的样式表,如:
main.css
———————-
@import “sub1.css”;
@import “sub2.css”;
sub1.css
———————-
p {color:red;}
sub2.css
———————-
.myclass {color:blue}
这样更利于修改和扩展.
猴 子提示:这样做有一个缺点,会对网站服务器产生过多的HTTP请求,以前是一个文件,而现在却是两个或更多文件了,服务器的压力增大,浏览量大的网站还是 谨慎使用。有兴趣的可以观察一下像新浪等网站的首页或栏目首页代码,他们总会把css或js直接写在html里,而不用外部文件。
4.CSS选择符有哪些?哪些属性可以继承?优先级算法如何计算?内联和important哪个优先级高?
5:前端页面有哪三层构成,分别是什么?作用是什么?
最准确的网页设计思路是把网页分成三个层次,即:结构层、表示层、行为层。
网页的结构层(structural layer)由 HTML 或 XHTML 之类的标记语言负责创建。标签,也就是那些出现在尖括号里的单词,对网页内容的语义含义做出了描述,但这些标签不包含任何关于如何显示有关内容的信息。例如,P 标签表达了这样一种语义:“这是一个文本段。”
网页的表示层(presentation layer) 由 CSS 负责创建。 CSS 对“如何显示有关内容”的问题做出了回答。
网页的行为层(behavior layer)负责回答“内容应该如何对事件做出反应”这一问题。这是 Javascript 语言和 DOM 主宰的领域。
8:你做的页面在哪些流览器测试过?这些浏览器的内核分别是什么?经常遇到的浏览器的兼容性有哪些?怎么会出现?解决方法是什么?
点评:css的兼容性也是大家关注的热点。大家一定要注意多测试。Javascript 多浏览器兼容性问题及解决方案
兼容性处理要点
1、DOCTYPE 影响 CSS 处理
2、FF: 设置 padding 后, div 会增加 height 和 width, 但 IE 不会, 故需要用 !important 多设一个 height 和 width
3、FF: 支持 !important, IE 则忽略, 可用 !important 为 FF 特别设置样式
4、div 的垂直居中问题: vertical-align:middle; 将行距增加到和整个DIV一样高 line-height:200px; 然后插入文字,就垂直居中了。缺点是要控制内容不要换行
5、在mozilla firefox和IE中的BOX模型解释不一致导致相差2px解决方法:
div{margin:30px!important;margin:28px;}
注意这两个margin的顺序一定不能写反,!important这个属性IE不能识别,但别的浏览器可以识别。所以在IE下其实解释成这样:
div{maring:30px;margin:28px}
重复定义的话按照最后一个来执行,所以不可以只写margin:XXpx!important;
浏览器差异
1、ul和ol列表缩进问题
消除ul、ol等列表的缩进时,样式应写成:list-style:none;margin:0px;padding:0px;
其中margin属性对IE有效,padding属性对FireFox有效。
[注] 经验证,在IE中,设置margin:0px可以去除列表的上下左右缩进、空白以及列表编号或圆点,设置padding对样式没有影响;在 Firefox 中,设置margin:0px仅仅可以去除上下的空白,设置padding:0px后仅仅可以去掉左右缩进,还必须设置list- style:none才 能去除列表编号或圆点。也就是说,在IE中仅仅设置margin:0px即可达到最终效果,而在Firefox中必须同时设置margin:0px、 padding:0px以及list-style:none三项才能达到最终效果。
2、CSS透明问题
IE:filter:progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=60)。
FF:opacity:0.6。
[注] 最好两个都写,并将opacity属性放在下面。
3、CSS圆角问题
IE:ie7以下版本不支持圆角。
FF: -moz-border-radius:4px,或者-moz-border-radius-topleft:4px;-moz- border- radius-topright:4px;-moz-border-radius-bottomleft:4px;-moz- border- radius- bottomright:4px;。
[注] 圆角问题是CSS中的经典问题,建议使用JQuery框架集来设置圆角,让这些复杂的问题留给别人去想吧。不过jQuery的圆角只看到支持整个区域的圆角,没有支持边框的圆角,不过这个边框的圆角可以通过一些简单的手段来实现,下次有机会介绍下。
4、cursor:hand VS cursor:pointer
问题说明:firefox不支持hand,但ie支持pointer ,两者都是手形指示。
解决方法:统一使用pointer。
5、字体大小定义不同
对字体大小small的定义不同,Firefox中为13px,而IE中为16px,差别挺大。
解决方法:使用指定的字体大小如14px。
并列排列的多个元素(图片或者链接)的div和div之间,代码中的空格和回车在firefox中都会被忽略,而IE中却默认显示为空格(约3px)。
6、CSS双线凹凸边框
IE:border:2px outset;。
FF: -moz-border-top-colors: #d4d0c8 white;-moz-border-left-colors: #d4d0c8 white;-moz-border-right-colors:#404040 #808080;-moz-border-bottom-colors:#404040 #808080;
浏览器bug
1、IE的双边距bug
设置为float的div在ie下设置的margin会加倍。这是一个ie6都存在的bug。
解决方案:在这个div里面加上display:inline;
例如:
<#div id=”imfloat”>
相应的css为
以下为引用的内容:
复制代码代码如下:
#IamFloat{
float:left;
margin:5px;/*IE下理解为10px*/
display:inline;/*IE下再理解为5px*/
}
#IamFloat{
float:left;
margin:5px;/*IE下理解为10px*/
display:inline;/*IE下再理解为5px*/
}
关 于CSS中的问题实在太多了,甚至同样的CSS定义在不同的页面标准中的显示效果都是不一样的。一个合乎发展的建议是,页面采用标准XHTML标准编写, 较少使用table,CSS定义尽量依照标准DOM,同时兼顾IE、Firefox、Opera等主流浏览器。很多情况下,FF和 Opera的CSS解释标准更贴近CSS标准,也更具有规范性。
2、IE选择符空格BUG
今天在给博客的段落样式设置首字符样式的时候发现,原来一个空格也可以使样式失效。
请看以下代码:
复制代码代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "//www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="//www.w3.org/1999/xhtml">
<head>
<title></title>
<style type="text/css">
<!--
p{font-size:12px;}
p:first-letter{font-size:300%}
-->
</style>
</head>
<body>
<p>对于世界而言,你是一个人;但是对于某个人,你是他的整个世界。纵然伤心,也不要愁眉不展,因为你不知是谁会爱上你的笑容。</p>
</body>
</html>
[/code]
复制代码代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "//www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="//www.w3.org/1999/xhtml">
<head>
<title></title>
<style type="text/css">
<!--
p{font-size:12px;}
p:first-letter{font-size:300%}
-->
</style>
</head>
<body>
<p>对于世界而言,你是一个人;但是对于某个人,你是他的整个世界。纵然伤心,也不要愁眉不展,因为你不知是谁会爱上你的笑容。</p>
</body>
</html>
这 段代码对<p>的首字符样式定义在IE6上看是没有效果的(IE7没测试),而在p:first-letter和{font- size:300%}加上空格,也就是p:first-letter {font-size:300%}后,显示就正常了。但是同样的代码,在FireFox下看是正常的。按道理说,p:first- letter{font-size:300%}的写法是没错的。那么问题出在哪里呢?答案是伪类中的连字符”-”。IE有个BUG,在处理伪类时,如果伪 类的名称中带有连字符”-”,伪类名称后面就得跟一个空格,不然样式的定义就无效。而在FF中,加不加空格都可以正常处理。
对css缩写的支持问题:
不论是ie 还是ff对css的缩写都有一小点问题
比如
border: 0xp solid #fff;两个浏览器支持都没有问题
但对于四个边的magin不同情况下,就不能用这种缩写了,无论是ie还是ff又会出现边界解释错误,而导致页面变形
正确缩写:
border-width:0px 1px 2px 3px;
border-style:solid;
border-color:#fff;
第二点是 ie对于css的magin padding 等默认值为0px,但ff却不一样,为了保持外观的统一性,即使padding为0你也要写上,以免ff在浏览中的错位。
IE与Firefox的CSS兼容大全
1.DOCTYPE 影响 CSS 处理
2.FF: div 设置 margin-left, margin-right 为 auto 时已经居中, IE 不行
3.FF: body 设置 text-align 时, div 需要设置 margin: auto(主要是 margin-left,margin-right) 方可居中
4.FF: 设置 padding 后, div 会增加 height 和 width, 但 IE 不会, 故需要用 !important 多设一个 height 和 width
5.FF: 支持 !important, IE 则忽略, 可用 !important 为 FF 特别设置样式,值得注意的是,一定要将xxxx !important 这句放置在另一句之上
6.div 的垂直居中问题: vertical-align:middle; 将行距增加到和整个DIV一样高 line-height:200px; 然后插入文字,就垂直居中了。缺点是要控制内容不要换行
7.cursor: pointer 可以同时在 IE FF 中显示游标手指状, hand 仅 IE 可以
8.FF: 链接加边框和背景色,需设置 display: block, 同时设置 float: left 保证不换行。参照 menubar, 给 a 和 menubar 设置高度是为了避免底边显示错位, 若不设 height, 可以在 menubar 中插入一个空格。
9.在mozilla firefox和IE中的BOX模型解释不一致导致相差2px解决方法:div{margin:30px!important;margin:28px;}
注意这两个margin的顺序一定不能写反,据阿捷的说法!important这个属性IE不能识别,但别的浏览器可以识别。所以在IE下其实解释成这样:div{maring:30px;margin:28px}
重复定义的话按照最后一个来执行,所以不可以只写margin:XXpx!important;
10.IE5 和IE6的BOX解释不一致
IE5下div{width:300px;margin:0 10px 0 10px;}
div 的宽度会被解释为300px-10px(右填充)-10px(左填充)最终div的宽度为280px,而在IE6和其他浏览器上宽度则是以 300px+10px(右填充)+10px(左填充)=320px来计算的。这时我们可以做如下修改div{width:300px!important;width :340px;margin:0 10px 0 10px}
关于这个是什么我也不太明白,只知道IE5和firefox都支持但IE6不支持,如果有人理解的话,请告诉我一声,谢了!:)
11.ul标签在Mozilla中默认是有padding值的,而在IE中只有margin有值所以先定义ul{margin:0;padding:0;}
就能解决大部分问题
注意事项:
1、float的div一定要闭合。
例如:(其中floatA、floatB的属性已经设置为float:left;)<#div id=\"floatA\" >
<#div id=\"floatB\" >
<#div id=\"NOTfloatC\" >
这里的NOTfloatC并不希望继续平移,而是希望往下排。
这段代码在IE中毫无问题,问题出在FF。原因是NOTfloatC并非float标签,必须将float标签闭合。
在<#div class=\"floatB\">
<#div class=\"NOTfloatC\">
之间加上<#div class=\"clear\">
这个div一定要注意声明位置,一定要放在最恰当的地方,而且必须与两个具有float属性的div同级,之间不能存在嵌套关系,否则会产生异常。
并且将clear这种样式定义为为如下即可:.clear{
clear:both;}
此外,为了让高度能自动适应,要在wrapper里面加上overflow:hidden;
9.如何居中一个浮动元素?
设置容器的浮动方式为相对定位
展开阅读全文