css页面重构面试题

偶然间又看到博客园中这两道页面重构面试题。
题一:分别用2个DIV,3个DIV,5个DIV实现水平垂直均居中显示一个宽50px,高200px的正十字架.
思路:水平垂直均居中的实现,当然非absolute加外边距负值结合莫属.闲话略去,看代码及演示吧.
2个DIV实现的核心CSS代码:点此查看DEMO

.div_a{width:50px; height:200px; background:#a40000; position:absolute; left:50%; top:50%; margin:-100px 0 0 -25px}
.div_b{width:200px; height:50px; background:#a40000; position:absolute; left:50%; top:50%; margin:-25px 0 0 -100px}

3个DIV实现的核心CSS代码:点此查看DEMO

.div_a{width:200px; height:50px; background:#a40000; magin-top:75px}
.div_b{width:50px; height:200px; background:#a40000; margin:-125px 0 0 75px}
.div_c{width:200px; width:200px; position:absolute; left:50%; top:50%; margin:-100px 0 0 -100px}

5个DIV实现的核心CSS代码:点此查看DEMO

.div_a{width:200px; width:200px; position:absolute; background:#a40000; left:50%; top:50%; margin:-100px 0 0 -100px}
.div_b,.div_c,.div_d,.div_e{width:75px; height:75px; background:#fff}
.div_b,.div_d{float:left}
.div_c,.div_e{float:right}
.div_b,.div_c{margin-bottom:50px}

题二:这是一道很费脑筋,但很有意思的一道题.这道题也能让你领略到CSS的博大精深.原题要求是,让某一图形水平垂直居中于当前可视页面,且图形是一个无限缩小的,就是四个角的正方形依次缩小,在用户体验上要满足尽最多用户.
思路:既然要求图形水平垂直居中,那最终它占的肯定是一个正方图形;从用户体验上,满足最多用户,主要是受限于用户的浏览器窗口大小.目前主流的显示器分辨率是1024*768,拿大陆用户量最大的IE来计算,其不安装插件的情况下可视高度约为590px,所以我们要实现的正方图形必须限制在590px*590px里面(分辨率宽大于高,所以以高为底线计算).按最中间的图形大小为200px*200px计算,200+100*2+50*2+25*2+12.5*2+6.25*2~=590.
题二思路借签自网络,原作者已无从考证,谨此感谢.
核心CSS代码:点此查看DEMO

.div_center{width:200px;height:200px;left:50%;top:50%;position:absolute;margin:-100px 0 0 -100px;background:#a40000}
.div_a,.div_b,.div_c,.div_d{width:50%;height:50%;position:absolute;background:#a40000;}
.div_a{left:-50%;top:-50%}
.div_b{right:-50%;top:-50%}
.div_c{left:-50%; bottom:-50%;}
.div_d{right:-50%; bottom:-50%;}

html部分:

<div class="div_center">
  <div class="div_a">
    <div class="div_a">
      <div class="div_a">
        <div class="div_a">
          <div class="div_a">
            <div class="div_a"></div>
          </div>
        </div>
      </div>
    </div>
  </div>
  <div class="div_b">
    <div class="div_b">
      <div class="div_b">
        <div class="div_b">
          <div class="div_b">
            <div class="div_b"></div>
          </div>
        </div>
      </div>
    </div>
  </div>
  <div class="div_c">
    <div class="div_c">
      <div class="div_c">
        <div class="div_c">
          <div class="div_c">
            <div class="div_c"></div>
          </div>
        </div>
      </div>
    </div>
  </div>
  <div class="div_d">
    <div class="div_d">
      <div class="div_d">
        <div class="div_d">
          <div class="div_d">
            <div class="div_d"></div>
          </div>
        </div>
      </div>
    </div>
  </div>
</div>
时间: 2024-08-25 14:41:11

css页面重构面试题的相关文章

html文档页面重绘和重新布局

当浏览器下载完所有页面HTML 标记,JavaScript,CSS,图片之后,它解析文件并创建两个内部数据结构:一棵DOM树表示页面结构,一棵渲染树表示DOM节点如何显示. 在对html页面的操作过程中会改变页面的结构或者页面的外观或者同时改变页面的结构和外观.在过程中,文档可见外观改变很小(如:改变了某些元素的颜色,或者改变了某些元素的可见性,但这种改变不会影响到页面的布局),这种行为称为“重绘”,也就是浏览器对文档进行了重新绘制.如果页面外观发生了显著变化并且影响到文档的实际布局(如一个<d

页面重绘和回流以及优化

在讨论页面重绘.回流之前.需要对页面的呈现流程有些了解,页面是怎么把html结合css等显示到浏览器上的,下面的流程图显示了浏览器对页面的呈现的处理流程.可能不同的浏览器略微会有些不同.但基本上都是类似的. 1.  浏览器把获取到的HTML代码解析成1个DOM树,HTML中的每个tag都是DOM树中的1个节点,根节点就是我们常用的document对象.DOM树里包含了所有HTML标签,包括display:none隐藏,还有用JS动态添加的元素等. 2. 浏览器把所有样式(用户定义的CSS和用户代

css基础css页面布局基础

样式可以在HTML中定义,也可以在一个单独的外部样式文件中定义.样式可以分为嵌入式样式表,外部样式表,内联样式表. 外部样式表:首先要建一个后缀为.css的样式表文件,然后在web文档中的<head>段使用<link>标记,这样就可以将一个外部样式表文件链接到文档中. 语法:<link rel="stylesheet" type="text/css" href="样式表的url"/> 嵌入式样式表:在web文档

div+css页面布局-html代码

<html> <head> <title>div+css页面布局</title> <meta http-equiv="content-type" content="text/html" > <link rel="stylesheet" type="text/css" href="css/layout.css" /> </head&

CSS页面模块的常用命名

CSS页面模块的常用命名:        头:header        内容:content/container        尾:footer        导航:nav        侧栏:sidebar        栏目:column        页面外围控制整体布局宽度:wrapper        左右中:left right center        登录条:loginbar        标志:logo        广告:banner        页面主体:main 

python--前端之CSS(css页面引入方法、选择器之基本选择器、组合选择器)

CSS产生背景: 为了让网页元素的样式更加丰富,也为了让网页的内容和样式能拆分开,CSS由此思想而诞生,CSS是 Cascading Style Sheets 的首字母缩写,意思是层叠样式表. 有了CSS,html中大部分表现样式的标签就废弃不用了,html只负责文档的结构和内容,表现形式完全交给CSS,html文档变得更加简洁. CSS基本语法及页面引用 CSS基本语法 CSS 规则由两个主要的部分构成:选择器,以及一条或多条声明. selector { property: value; pr

Java学习总计(二十六)——JavaScript正则表达式,Js表单验证,原生js+css页面时钟

一.JavaScript正则表达式1.exec检索字符串中指定的值,返回找到的值,并确定其位置2.test检索字符串中指定的值,返回true或false3.正则表达式对象的创建:(1)方式一:Var rgex=new RegExp("[0-9]","模式");(2)方式二:简便写法,用双斜杠//把正则表达式的内容括起来例1(正则创建,使用test()方法): <!DOCTYPE html> <html> <head> <me

第一个CSS页面

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>我的第一个CSS页面</title> <style type="text/css"> #myDiv{ border: 1px solid red; width:500px; height: 500px; } span:hover{

页面重绘与重排版的性能影响

DOM树和渲染树 当浏览器下载完所有页面HTML 标记,JavaScript,CSS,图片之后,它解析文件并创建两个内部数据结构:一棵DOM树表示页面结构,一棵渲染树表示DOM节点如何显示.      渲染树中为每个需要显示的DOM 树节点存放至少一个节点(隐藏DOM 元素在渲染树中没有对应节点).渲染树上的节点称为“框”或者“盒”,符合CSS 模型的定义,将页面元素看作一个具有填充.边距.边框和位置的盒.一旦DOM 树和渲染树构造完毕,浏览器就可以显示(绘制)页面上的元素了. 重排版 当DOM