css面试题布局

2023-05-16

不试试怎么知道自己行不行?
昨天加了张鑫旭的微信,我草贼开心,发现他星期六会直播,一下就是我看直播学到的一些总结

那么是什么呢?其实就是一个简单的左右排版,在张老师的讲了4种不是很好用的方法好,开始了厉害的来了

这里实现的效果是

看到这个效果图,有人要说了mmb就这个我早就会了绝对定位一下就好了,固定一下高度,宽度就好了,flex就好了,float一下就好了,其实怎么说看要求吧,我目前是一个有梦想的小白所以目前对自己的要求是可以搞明白的尽可能的搞到最好,

其实有很多好的方法但我看了之后我把我让我好的(我记得的)写了下来

1.单浮动方法,

可能很多人看我这个题目的时候第一时间是想到了左右浮动,但现实告诉我,我真的是个小白哎

我在这里细细道来

1.HTML源码

<dl>
	<dt>zqx的的帅哥</dt>
	<dd>zqx的的帅哥</dd>
	<dt>zqx的的帅哥</dt>
	<dd>zqx的的帅哥</dd>
	<dt>zqx的的帅哥</dt>
	<dd></dd>
	<dt>zqx的的帅哥</dt>
	<dd>zqx的的帅哥</dd>
	<dt>zqx的的帅哥</dt>
	<dd>zqx的的帅哥</dd>
</dl>

 那么这个结果是什么呢?

对就是这样那么为什么会是这样呢?因为他就是这样,dd会有一个margin-left:40px的值,所以呵呵,搞笑了

所以我们只要让dt:float同时让dd:text-right就可以了为什么以为当dt浮动,就产生了BFC那么dd文字就会和dt变成了一排了

具体代码:

dl{
	border: 1px solid saddlebrown;
	padding: 10px;
}
dl dt{
	float: left;
	width: 10em;
}
dl dd{
	text-align: right;
	overflow: hidden; 
} 
dl dd:empty:before{
	content: "暂无数据";
	color: #999;
}	

 看完了代码发现有些看不懂的地方比如为什么要overflow:hidden,为什么呢?

其实大家和我一样不会注意这个其实不管我们设置dt的width为多少都没办法阻止dd自适应100%的影响,所以当我们dd文字多了的时候就会出现现在的问题

 文字当多了行数的时候就会自适应100%了,就会出现上面的问题,那么怎么解决呢?对就是dd加overflow:hidden;当加上这个的时候dd就会也就BFC那么dd,dt他们就有了他们自己的宽度,就可以了,呵呵,

那么加上后是什么样子呢?

很明显可以看到dd他又了宽度的,且是自适应剩余了除了dt10em的值, 所以在加上empey加上防止数据没传上时候布局出问题

但是我看到这里我就知道这个一定不是最好的方法?为什么呢因为我在N多年前(其实也就2年)张大大说了这样一句话就是不要用float,用margin也可以完成我们想要的效果我一直无法理解一直到今天呵呵

纯文档流写法

/*写法二,纯真文档流*/
dl {
    border: 1px solid saddlebrown;
	padding: 10px;
	line-height: 1.5em;
}
dl dd{
	text-align: right;
	margin: -1.5em 0 0 10em;
}
dl dd:empty:before{
	content: "暂无数据";
	color: #999;
}

为什么这样可以我建议大家可以把dl dd中的代码一行一行是删了加 大家就明白了,我这里就不展示了复制图片还是有点麻烦啊

这里就讲一下

margin: -1.5em 0 0 10em;这个是用法:-1.5em因为要设置为同一行,10em是距离dd的值,这样就连dt的宽度都不用设置,所以才有了上面的那句话

其实上面的还有一些极端内容的考虑

1.文字内容很多

2.连续一串英文字符

3.没有文字内容

第一的问题就要看大家的布局好不好了。

第二可以加

word-break: break-all;

第三就是加

dl dd:empty:before{
	content: "暂无数据";
	color: #999;
}

 

flex布局

dl{
	display: flex;
	flex-wrap: wrap; 	/*所有flex项目多行排列,按从上到下*/
	border: 1px solid saddlebrown;
	margin: 0;
}
dt{
	width: 10em;
			
}
dd{
	width: calc( 100% - 14em );
	text-align: right;
}
dl dd:empty:before{
	content: "暂无数据";
	color: #999;
}

这里为什么要flex-wrap: wrap;因为他的默认的值是nowrap是所有内容一行显示(写了宽度都没用,例如这里的10em)

在有一些其他的写法

1. dt标签绝对定位

dt { position: absolute; }
dd {text-align: right; }

不好的地方:但是,如果文字内容很多,则dd标签里面内容会和dt发生重叠:

改下

dt { position: absolute; }
dd {
	width: calc(100%-14em);
	text-align: right;
	margin-left: 10em;
	word-break: break-all;
 }
dl dd:empty:before{
	content: "暂无数据";
	color: #999;
}

其实这里应为dd写了宽带,其实和最开始的单浮动是样会有可能发生重叠,单身单浮动没设置dd的宽带而是设置的overflow:hiddent他们就自动的分开,而这里是用的设置宽度和margin-left所以可以达到效果

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

css面试题布局 的相关文章

  • 简单的html css块结构,不能对内容div使用-headerHeight底部边距来避免滚动条吗?

    以下是我的简单 html css 结构
  • jQuery 位置 DIV 固定在滚动顶部

    我有一个相当长的页面 在布局的菜单中 有一个弹出菜单 我希望菜单的弹出部分显示在页面顶部 即使用户已将菜单栏滚动到视图之外 这是菜单的 HTML div div Compare up to 3 cards side by side Clic
  • 自动调整Google网站嵌入代码的高度(html)

    我正在使用 Google 协作平台嵌入 HTML 代码 将代码粘贴到 从网络嵌入 窗口中 输出的长度是可变的 我希望有一种方法可以动态调整父级的高度iframeGoogle 协作平台用于托管我的 HTML 我知道我可以使用 Google 协
  • 滚动时输入自动完成位置错误(chrome)

    我在输入文本的默认自动完成功能方面遇到了一些麻烦 滚动时它不会相应移动 我希望自动完成文本保留在输入的正下方 有办法做到这一点吗 我在 Chrome 浏览器版本 57 0 2987 133 中发生这种情况 fiddle https jsfi
  • IE 中的 HR 标签 - 删除边框

    在除 IE7 及更低版本之外的其他浏览器中 hr 在 hr 标签周围显示边框 但我不希望它出现 我已经尝试过这个解决方案 但它周围似乎仍然有边框 它看起来像这样 我该如何摆脱它 See http webdesign about com od
  • 即使在包裹后也具有等宽的弹性项目

    是否可以制作一个像这样的纯 CSS 解决方案 物品有一些min width 它们应该动态增长以填充所有容器宽度 然后换行到新行 列表中的所有项目都应具有相同的宽度 现在看起来是这样的 这就是我希望它看起来像的样子 我已经手动管理这些底部项目
  • 将 CSS 生成的三角形拆分为 2 个水平不同的相同颜色

    正如您应该能够通过此代码看到的那样fiddle http jsfiddle net Xh36r 1 以及下面 我希望能够分割显示在第二个 div 顶部的 CSS 生成的三角形水平均等在 之间orange and green使用的颜色 现在它
  • HTML 元素的默认背景颜色是什么?白色还是透明?

    我只是被一个简单的问题困住了 想弄清楚 HTML 元素的默认背景颜色是什么 是白色的还是透明的 默认背景颜色是透明的 看这里 https developer mozilla org en docs Web CSS background co
  • 在 HTML5 iOS 7 / iOS 8 中显示十进制键盘

    经过几个小时的搜索后 我只是有一个简单的问题 是否有可能在网络浏览器输入字段中显示小数键盘 input type number 只显示数字 但我需要在左下角使用逗号或点 我尝试过任何事情 pattern step等等 但没有显示十进制键盘
  • Internet Explorer 中的锯齿状按钮边缘

    如何去除 Internet Explorer 中宽按钮的锯齿状边缘 例如 您还可以通过设置来消除 Windows XP 的按钮样式 以及 Windows 的所有其他版本 background color and or border colo
  • 样式 ::-webkit-scrollbar-track 不起作用

    我正在尝试设置滚动条轨道的样式 每当我设计曲目时 div webkit scrollbar track background color blue 没有什么变化 每当我设置滚动条样式时 div webkit scrollbar backgr
  • 使用 jQuery 更改父元素样式

    我有下一个 html 设置 div class one div class two a href class three Click a div div 我想更改具有类的元素的背景颜色 one当我点击元素时 three使用 jQuery 这
  • 如何在 Bootstrap 3 的导航栏中添加带有图标的搜索框?

    我正在使用新的 Twitter Bootstrap 3 并尝试放置一个像这样的搜索框 如下 在顶部导航栏中 在 Bootstrap 2 中 可以这样完成
  • CSS 显示无不工作

    media screen and min width 900px and max width 1215px menu display none 这不起作用 div 仍然可见 但是 如果我将 div 更改为 div class menu 代替
  • 使用 CSS 网格布局使网格项内的元素高度相等

    我在长度超过 4 的 div 中有一系列文章 没有任何舍入行标签 我需要将其表示为每行 3 篇文章 列 的表格 可能包含display grid 每篇文章都有页眉 章节和页脚 如何在每行文章内实现每个标题的等高 每个部分的等高以及与文章底部
  • CSS 网格框架中的间距有什么作用?

    我正在深入研究 Web 开发 并且正在使用 Blueprint CSS 框架 其中包括网格系统 我有几个问题 水沟有什么用处 当然 它们不用于在列之间包含空间 因为您可以使用 margin CSS 属性来实现这一点 对吗 或者排水沟只是一种
  • 适用于移动设备的响应式订单确认电子邮件?

    我从未见过令人惊叹的订单确认 发票电子邮件 即使是最好的 html5 网站也会发送糟糕的订单确认电子邮件 有时是纯文本 我相信这是因为发票通常需要使用表格来显示购买的物品 这在移动设备上实现起来非常困难 我发现了一些让手机上的表格更易于管理
  • 将特定字形与网络字体一起使用

    使用网络字体 我想使用字体功能设置 CSS 中的选项以及跨度类HTML 中 以便使用字体集中的特定替代字形 我需要以正确的语法使用哪些值 GID Unicode 才能定位特定的目标glyph内glyph备择方案 这些功能使用 OpenTyp
  • ng-include 和 ng-view 不同时加载

    下面是我的应用程序的结构 很简单 页眉和页脚是非常小的文件 而主页上的 ng view 要大得多 当我进入该页面时 我注意到了这一点 首先加载两个 ng include 然后 ng view 出现 页脚被推到底部 页脚闪烁大约 0 1 秒
  • 为什么使用 iPhone 或 iOS 设备在“iframe”中查看“position:fixed”时不起作用?

    我研究过 stackoverflow 似乎position fixed在 iOS 移动设备的 iframe 中 https stackoverflow com questions 15874910 position fixed and if

随机推荐

  • js中的预编译和作用域链

    预编译目的 1 定义作用域中的初始化词法环境 xff0c 而词法环境中有定于作用域 xff0c 从而规定了变量的作用域 2 先是在为undefined xff0c 减少运行时报错 形参去实参的区别 1 形参变量只有在被调用时才分配内存单元
  • ffmpeg视频处理神器学习基础笔记

    FFmpeg文档汇总 xff1a https ffmpeg org documentation html FFmpeg filters文档 xff1a https ffmpeg org ffmpeg filters html 视频处理 视频
  • Vue.js动画和过渡

    vue中的过渡与动画 过滤 把需要添加动画效果的DIV放到transition标签 之后就会发生以下3个步骤 自动嗅探目标元素是否应用了 CSS 过渡或动画 xff0c 如果是 xff0c 在恰当的时机添加 删除 CSS 类名 等下要写的6
  • Vue.js使用keyframes动画

    lt DOCTYPE html gt lt html gt lt head gt lt meta charset 61 34 utf 8 34 gt lt title gt Vue中css动画的原理 lt title gt lt scrip
  • Vue.js使用animate.css框架

    1 如何使用animate框架 lt DOCTYPE html gt lt html gt lt head gt lt meta charset 61 34 utf 8 34 gt lt title gt Vue中css动画的原理 lt t
  • vue.js中添加动画

    通过触发事件 xff0c 改变data中的值 xff0c 或者改变点击标签元素上的属性值 lt DOCTYPE html gt lt html lang 61 34 en 34 gt lt head gt lt meta charset 6
  • 多个元素和列表的过渡

    多个元素 lt DOCTYPE html gt lt html lang 61 34 en 34 gt lt head gt lt meta charset 61 34 UTF 8 34 gt lt title gt 多个元素的组件的过渡动
  • flex弹性布局的学习

    布局的传统解决方案是基于盒状模型 xff0c 依赖 display 43 position 43 float 方式来实现 xff0c 灵活性较差 2009年 xff0c W3C提出了一种新的方案 Flex xff0c Flex是Flexib
  • 震惊!Ajax项目中的使用

    啊啊 xff01 实习第一天写了个移动端的分享列表 就在第三天我们的技术大佬亲自教我们如何对接后台 当然用的是我写的移动端的分享列表 虽然这次应用不是很深入 xff0c 但还是比较广泛 用到了Ajax xff0c sui框架 zepto x
  • 关于viewport视口的学习

    简单来说 lt meta name 61 34 viewport 34 content 61 34 width 61 device width initial scale 61 1 0 34 gt content属性值 width 可视区域
  • 淘宝的H5布局

    利用viewport和rem布局实现的淘宝布局 下面先看看em布局的原理 em作为font size的单位时 xff0c 其代表父元素的字体大小 xff0c em作为其他属性单位时 xff0c 代表自身字体大小 MDN em作为字体单位 x
  • css的优先级

    优先级 浏览器通过优先级来判断哪些属性值与一个元素最为相关 xff0c 从而在该元素上应用这些属性值 优先级是基于不同种类选择器组成的匹配规则 优先级是如何计算的 优先级就是分配给指定的 CSS 声明的一个权重 xff0c 它由 匹配的选择
  • Django设置分享到微信好友和朋友圈时的标题、摘要、链接和图片

    主要参考官方文档 1 前端分享给好友和朋友圈的js代码 share html lt DOCTYPE html gt lt html lang en gt lt head gt lt meta charset UTF 8 gt lt meta
  • 孙其功陪你学之——如何将shell命令的返回值赋值给应用程序的变量

    如何将shell命令的返回值赋值给应用程序的变量 博主最近做了个路由器的项目 xff0c 需要得到路由器现在网络状态和参数 xff0c 使用UCI get 获得 xff0c 但是使用了system xff08 UCI get xff09 之
  • shell编程2条件语句

    文章目录 shell编程之条件语句1 条件测试1 1 返回值1 2 test 2 文件测试3 整数值比较4 逻辑测试5 if语句5 1 单分支 if 语句5 2 双分支 if 语句5 3 多分支 if 语句 6 case 语句7 实验7 1
  • html和css的hack的学习

    在整理基础的时候总结 html和css的hack的学习 hack是什么 xff1f 就是针对不同的浏览器写不同的css样式让各浏览器能达到一致的渲染效果 xff0c hack分为HTML和CSS HTML hack lt if lte IE
  • 数组的迭代与归并的方法

    迭代的作用 xff1a 减少代码量 xff1a 例如因为map xff0c filter方法会自动生产数组不用自己在for创建 xff0c 有利于性能优化 xff1b 和无需知道对象的长度 补充19 6 11 xff1a 迭代的方法是表达式
  • js数组的常见属性和方法

    属性 strong length strong 是Array的实例属性 返回或设置一个数组中的元素个数 该值是一个无符号 32 bit 整数 xff0c 并且总是大于数组最高项的下标 xff0c 不只是可读 Array prototype
  • js闭包的作用和应用的学习

    什么是闭包 一个函数和对其周围状态 xff08 lexical environment xff0c 词法环境 xff09 的引用捆绑在一起 xff08 或者说函数被引用包围 xff09 xff0c 这样的组合就是闭包 xff08 closu
  • css面试题布局

    不试试怎么知道自己行不行 昨天加了张鑫旭的微信 xff0c 我草贼开心 xff0c 发现他星期六会直播 xff0c 一下就是我看直播学到的一些总结 那么是什么呢 xff1f 其实就是一个简单的左右排版 xff0c 在张老师的讲了4种不是很好