js面试题-----页面布局

题目1:假设高度已知,请写出三栏布局,其中左栏、右栏宽度各为300px,中间自适应

答案:

  ①、浮动方式

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style media=‘screen‘>
        *{
            padding:0;
            margin:0;
        }
        .layout article div{
            min-height:100px;
        }
        .layout.float .left{
            float:left;
            width:300px;
            background:red;
        }
        .layout.float .right{
            float:right;
            width:300px;
            background:blue;
        }
        .layout.float .center{
            background:yellow;
        }
    </style>
</head>
<body>
    <section class="layout float">
        <article class=‘left-right-center‘>
            <div class=‘left‘></div>
            <div class=‘right‘></div>
            <div class=‘center‘>
                <h1>浮动解决方案</h1>

            </div>
        </article>
    </section>
</body>
</html>

  ②、定位方式 

<style media=‘screen‘>
        *{
            padding:0;
            margin:0;
        }
        .layout article div{
            min-height:100px;
            position:absolute;
        }
        .layout.float .left{
            left:0;
            width:300px;
            background:red;
        }
        .layout.float .right{
            right:0;
            width:300px;
            background:blue;
        }
        .layout.float .center{
            left:300px;
            right:300px;
            background:yellow;
        }
    </style>

  ③、flex布局

*{
            padding:0;
            margin:0;
        }
        .layout article{
            display:flex;
        }
        .layout.float .left{
            width:300px;
            background:red;
        }
        .layout.float .right{
            width:300px;
            background:blue;
        }
        .layout.float .center{
            flex:1;
            background:yellow;
        }

  ④、表格布局

*{
            padding:0;
            margin:0;
        }
        .layout article{
            width:100%;
            display:table;
            height:100px;
        }
        .layout article div{
            display:table-cell;
        }
        .layout.float .left{
            width:300px;
            background:red;
        }
        .layout.float .right{
            width:300px;
            background:blue;
        }
        .layout.float .center{
            background:yellow;
        }

  ⑤、网格布局 

*{
            padding:0;
            margin:0;
        }
        .layout article{
            display:grid;
            width:100%;
            grid-template-rows:100px;
            grid-template-columns:300px auto 300px;
        }
        article .left{
            background:red;
        }
        article .center{
            background:yellow;
        }
        article .left{
            background:blue;
        }

问题扩展:

  1、几种方法的优缺点

    浮动:需要清除浮动,但兼容性较好

    定位:脱离文档流,导致下面的内容都要脱离文档流,但是比较快捷

    flex:可以解决上面两个的问题,但是存在兼容性

    表格:表格布局的兼容性非常好,有一些历史性的问题

    网格:比较新的方式

  2、去掉高度已知,那种方式不起作用?

    除了flex和表格布局可以之外,其余的都不起作用。

时间: 2024-10-11 23:31:18

js面试题-----页面布局的相关文章

前端js面试题

以下都是网上整理出来的JS面试题,答案仅供参考. /2,截取字符串abcdefg的efg//alert('abcdefg'.substring(4)); //3,判断一个字符串中出现次数最多的字符,统计这个次数/*var str = 'asdfssaaasasasasaa';var json = {}; for (var i = 0; i < str.length; i++) {        if(!json[str.charAt(i)]){                json[str.c

网上整理的JS面试题

以下都是网上整理出来的JS面试题,答案仅供参考. /2,截取字符串abcdefg的efg//alert('abcdefg'.substring(4)); //3,判断一个字符串中出现次数最多的字符,统计这个次数/*var str = 'asdfssaaasasasasaa';var json = {}; for (var i = 0; i < str.length; i++) {        if(!json[str.charAt(i)]){                json[str.c

2017、2018面试分享(js面试题记录)记得点赞分享哦;让更多的人看到~~

2017面试分享(js面试题记录) 1. 最简单的一道题 '11' * 2 'a8' * 3 var a = 2, b = 3; var c = a+++b; // c = 5 2. 一道this的问题 var num = 10; var obj = { num:8, inner: { num: 6, print: function () { console.log(this.num); } } } num = 888; obj.inner.print(); // 6 var fn = obj.

jquery-easyui实现页面布局和增删改查操作(SSH2框架支持)转载

http://blessht.iteye.com/blog/1069749/ 已注册:ooip 关联的csdn 前几天心血来潮用jquery-easyui+spring.struts2.hibernate实现了一个系统的一小部分功能,下面给大家分享一下. 首先看运行效果: [图一:登录页] [图二:页面布局] [图三:用户编辑层] [图四:确认弹出框] 准备 easyui插件简介在这就不赘述了,大家可以在iteye上找到很多该插件的相关消息. 如果页面需要使用easyui插件,需要引进一下js和

HTML页面布局

接下来的下面代码,只是给了一个大的前端编写布局,如果你已经是牛人了,就当没看到,如果是一些初学者,不妨拿去用用,里面也写了一些常用的css样式,现在虽然有很多牛逼的前段框架,用起来也非常得心应手,但是如果你要对自己很多定制化需求,最后肯定是要自己来编写前端页面的 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <!--网页标题-->

CSS3与页面布局学习总结(八)——浏览器兼容与前端性能优化

目录 一.浏览器兼容 1.1.概要 1.2.浏览器内核 1.3.浏览器市场份额(Browser Market Share) 1.4.兼容的一般标准 1.5.CSS Reset 1.6.CSS Hack 1.6.1.条件注释法 1.6.2.样式内属性标记法 1.6.3.选择器前缀法 1.7.文档模式 (X-UA-Compatible) 1.8.javascript兼容 二.前端性能优化 2.1.概要 2.2.减少HTTP请求数量 2.2.1.图片地图 2.2.2.精灵图片(Sprite) 2.2.

移动端页面布局的那些事儿

移动端页面布局的那些事儿 http://www.xiaoxiangzi.com/Programme/CSS/4298.html 一. viewport 什么是viewport 简单来讲,viewport就是浏览器上,用来显示网页的那一部分区域了,也就是说,浏览器的实际宽度,是和我们手机的宽度不一样的,无论你的手机宽度是320px,还是640px,在手机浏览器内部的宽度,始终会是浏览器本身的viewport.如今的浏览器,都会给自己的本身提供一个viewport的默认值,可能是980px,或者是其

CSS3与页面布局学习笔记(四)——页面布局大全

一.负边距与浮动布局 1.1.负边距 所谓的负边距就是margin取负值的情况,如margin:-100px,margin:-100%.当一个元素与另一个元素margin取负值时将拉近距离.常见的功能如下: 1.1.1.向上移动 当多个元素同时从标准流中脱离开来时,如果前一个元素的宽度为100%宽度,后面的元素通过负边距可以实现上移.当负的边距超过自身的宽度将上移,只要没有超过自身宽度就不会上移,示例如下: <!DOCTYPE html> <html> <head> &

js学习进阶-页面覆盖

页面覆盖以显示一条信息,照片或者常见的登录,广告, 实例: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width"> <title>JS Bin</title> <style> .overlay{ ba