css知识笔记(五)——css样式设置小技巧

水平居中设置-行内元素

如果被设置元素为文本图片行内元素时,水平居中是通过给父元素设置 text-align:center 来实现的。如下代码:

html代码:

<body><div class="txtCenter">我是文本,哈哈,我想要在父容器中水平居中显示。</div>
</body>

css代码:

<style>div.txtCenter{text-align:center;}
</style>

水平居中设置-定宽块状元素

当被设置元素为块状元素时用 text-align:center 就不起作用了,这时也分两种情况:定宽块状元素和不定宽块状元素。

第一种方法:满足定宽块状两个条件的元素是可以通过设置左右margin”值为“auto”来实现居中的。我们来看个例子就是设置 div 这个块状元素水平居中:

html代码:

<body><div>我是定宽块状元素,哈哈,我要水平居中显示。</div>
</body>

css代码:

<style>
div{border:1px solid red;/*为了显示居中效果明显为 div 设置了边框*/ width:500px;/*定宽*/margin:20px auto;/* margin-left 与 margin-right 设置为 auto */
}
</style>

也可以写成:

margin-left:auto;
margin-right:auto;

注意:元素的“上下 margin” 是可以随意设置的。

第二种方法:改变块级元素的 dispaly 为 inline 类型,然后使用 text-align:center 来实现居中效果。如下例子:

html代码:

<body>
<div class="container"><ul><li><a href="#">1</a></li><li><a href="#">2</a></li><li><a href="#">3</a></li></ul>
</div>
</body>

css代码:

<style>
.container{text-align:center;
}
.container ul{list-style:none;margin:0;padding:0;display:inline;
}
.container li{margin-right:8px;display:inline;
}
</style>

这种方法相比第一种方法的优势是不用增加无语义标签,简化了标签的嵌套深度,但也存在着一些问题:它将块状元素的 display 类型改为 inline,变成了行内元素,所以少了一些功能,比如设定长度值。

方法三:通过给父元素设置 float,然后给父元素设置 position:relative 和 left:50%,子元素设置 position:relative 和 left:-50% 来实现水平居中。

代码如下:

<body>
<div class="container"><ul><li><a href="#">1</a></li><li><a href="#">2</a></li><li><a href="#">3</a></li></ul>
</div>
</body>

css代码:

<style>
.container{ float:left;position:relative;left:50%
}.container ul{list-style:none;margin:0;padding:0; position:relative;left:-50%;
}
.container li{float:left;display:inline;margin-right:8px;}
</style>

这种方法可以保留块状元素仍以 display:block 的形式显示,优点不添加无语议表标签,不增加嵌套深度,但它的缺点是设置了 position:relative,带来了一定的副作用。

这三种方法使用得都非常广泛,各有优缺点,具体选用哪种方法,可以视具体情况而定。

垂直居中-父元素高度确定的单行文本

父元素高度确定的单行文本的竖直居中的方法是通过设置父元素的 height 和 line-height 高度一致来实现的。如下代码:

<div class="container">hi,imooc!
</div>

css代码:

<style>
.container{height:100px;line-height:100px;background:#999;
}
</style>

垂直居中-父元素高度确定的多行文本

父元素高度确定的多行文本图片块状元素的竖直居中的方法有两种:

方法一:使用插入 table (包括tbody、tr、td)标签,同时设置 vertical-align:middle。

说到竖直居中,css 中有一个用于竖直居中的属性 vertical-align,但这个样式只有在父元素为 td 或 th 时,才会生效。所以又要插入 table 标签了。下面看一下例子:

html代码:

<body>
<table><tbody><tr><td class="wrap">
<div><p>看我是否可以居中。</p><p>看我是否可以居中。</p><p>看我是否可以居中。</p><p>看我是否可以居中。</p><p>看我是否可以居中。</p>
</div>
</td></tr></tbody></table>
</body>

css代码:

table td{height:500px;background:#ccc}

因为 td 标签默认情况下就默认设置了 vertical-align 为 middle,所以我们不需要显式地设置了。

 方法二在 chrome、firefox 及 IE8 以上的浏览器下可以设置块级元素的 display 为 table-cell,激活 vertical-align 属性,但注意 IE6、7 并不支持这个样式

html代码:

<div class="container"><div><p>看我是否可以居中。</p><p>看我是否可以居中。</p><p>看我是否可以居中。</p><p>看我是否可以居中。</p><p>看我是否可以居中。</p></div>
</div>

css代码:

<style>
.container{height:300px;background:#ccc;
    display:table-cell;/*IE8以上及Chrome、Firefox*/vertical-align:middle;/*IE8以上及Chrome、Firefox*/
}
</style>

这种方法的好处是不用添加多余的无意义的标签,但缺点也很明显,它的兼容性不是很好,不兼容 IE6、7。

隐性改变display类型

有一个有趣的现象就是当为元素(不论之前是什么类型元素,display:none 除外)设置以下 2 个句之一:

  1. position : absolute
  2. float : left 或 float : right

元素会自动变为以 display:inline-block 的方式显示,当然就可以设置元素的 width 和 height 了且默认宽度不占满父元素。

如下面的代码,a 标签是行内元素,所以设置它的 width 是 没有效果的,但是设置为 position:absolute 以后,就可以了。

<div class="container"><a href="#" title="">进入课程请单击这里</a>
</div>

css代码

<style>
.container a{position:absolute;width:200px;background:#ccc;
}
</style>

————————————————————————————————————————————————————————————————————————————

以上内容参考自慕课网:http://www.imooc.com

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/386131.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HTML如何添加锚点,干货满满

前言 昨天有幸去字节面试了&#xff0c;顺便拿到了offer&#xff0c;把还记得的东西写下来&#xff0c;供大家参考一下。 CSS篇 让一个元素水平垂直居中&#xff0c;到底有多少种方案&#xff1f;浮动布局的优点&#xff0c;缺点&#xff1f;清除浮动的方式&#xff1f;使用di…

JavaScript知识笔记(一)——入门、语句、注释、变量、函数、输出内容、对话框、窗口

JavaScript可以提供漂亮的网页、令用户满意的上网体验。 1.增强页面动态效果(如:下拉菜单、图片轮播、信息滚动等) 2.实现页面与用户之间的实时、动态交互(如:用户注册、登陆验证等) 引用JavaScript&#xff1a; 一、使用<script>标签在HTML文件中添加JavaScript代码&am…

HTML如何添加锚点,总结到位

标签语义化&#xff1a; 语义和默认样式的区别&#xff1a; 默认样式是浏览器设定的一些常用tag的表现形式&#xff1b;语义化的主要目的就是让大家直观的认识标签和属性的用途和作用&#xff1b; 标签语义化作用&#xff1a; 当只有HTML页面时&#xff0c;没有CSS&#xf…

JavaScript知识笔记(二)——事件

事件&#xff1a; JavaScript 创建动态页面。事件是可以被 JavaScript 侦测到的行为。 网页中的每个元素都可以产生某些可以触发 JavaScript 函数或程序的事件。 比如说&#xff0c;当用户单击按钮或者提交表单数据时&#xff0c;就发生一个鼠标单击&#xff08;onclick&#x…

HTML如何添加锚点,我先收藏为敬

背景 我18年本科毕业&#xff0c;年前已有换工作想法&#xff0c;一直没有付诸行动&#xff0c;疫情爆发后回到老家&#xff0c;年后开始找工作&#xff0c;对于自己水平不是很清楚&#xff0c;之前找工作一直都挺顺利的。大学毕业没有留在实习单位继续做前端开发&#xff0c;…

JavaScript知识笔记(三)——内置对象、浏览器对象

内置对象&#xff1a; &#xff08;与Java很像&#xff09;JavaScript 中的所有事物都是对象&#xff0c;如:字符串、数值、数组、函数等&#xff0c;每个对象带有属性和方法。 对象的属性&#xff1a;反映该对象某些特定的性质的&#xff0c;如&#xff1a;字符串的长度、图像…

HTML如何添加锚点,文末领取面试资料

开始 我大学读的是大专&#xff0c;在学校学的是机电一体化。临近毕业的时候选择了学习web前端技术&#xff0c;因为做机电实在又累工资又低&#xff0c;而我更喜欢坐办公室的工作&#xff0c;有空调吹&#xff0c;我很现实&#xff0c;就是想多赚一点钱。到现在做了两年前端的…

HTML如何添加锚点,论程序员成长的正确姿势

前言 年前准备换工作&#xff0c;总结了一波面试最频繁的面试问题跟大家交流。此文章是关于浏览器的常见问题&#xff0c;大概面试10家遇到6家提问类似问题&#xff08;主要是大厂和中厂&#xff09;。目前入职滴滴出行成都团队。 css盒模型 1&#xff0c;css盒模型基本概念…

DOM(文档对象模型)

文档对象模型DOM&#xff08;Document Object Model&#xff09;定义访问和处理HTML文档的标准方法。 DOM 将HTML文档呈现为带有元素、属性和文本的树结构&#xff08;节点树&#xff09;。 先来看看下面代码: 将HTML代码分解为DOM节点层次图: HTML文档可以说由节点构成的集合&…

HTML实体字符列表,总结到位

前言 每年毕业季都能听到很多报道说大学毕业生找工作难&#xff0c;以前看到这类新闻一直觉得无所谓。因为总觉得离我还早&#xff0c;但今年轮到我毕业了&#xff0c;才发现不幸终于降临到我的头上。 简历 首先肯定是要准备一份自己的简历&#xff0c;简历经常是给面试官的第…

java实现矩阵相乘

众所周知&#xff0c;矩阵的乘法就是矩阵的行列相乘再相加。话不多说&#xff0c;直接上代码&#xff1a; package test;public class matrixMultiply {public static void printMatrix(int[][] a, int[][] b) {int r a.length;int c b[0].length;double result[][] new dou…

你必须知道的CSS盒模型,面试建议

什么是HTML? HTML: ( Hypertext Markup Language )超文本标记语言&#xff0c;是一种标识性的语言。它包括一系列标签&#xff0e;通过这些标签可以将网络上的文档格式统一&#xff0c;使分散的Internet资源连接为一个逻辑整体。 特点: 简易性&#xff1a;超级文本标记语言版…

你必须知道的CSS盒模型,顺利通过阿里面试

前言 正式学习前端大概 3 年多了&#xff0c;接触前端大概 4 年了&#xff0c;很早就想整理这个书单了&#xff0c;因为常常会有朋友问&#xff0c;前端该如何学习&#xff0c;学习前端该看哪些书&#xff0c;我就讲讲我学习的道路中看的一些书&#xff0c;虽然整理的书不多&a…

java中的几种泛型类——HashSet、HashMap、TreeSet、TreeMap,遍历map,排序,HashTable比较

HashSet HashSet<E>泛型类在数据组织上类似于数学上的集合&#xff0c;可以进行“交”、“并”、“差”等运算。HashSet<E>泛型类创建的对象称为集合&#xff0c;如&#xff1a;HashSet<E> set HashSet<String>();那么set就是一个可以存储string类型…

保驾护航金三银四,100%好评!

前端的兴起 前端真正兴起和开始频繁出现在大家的视线里&#xff0c;大概是在十年前。彼时的 Web 开发基本是由后端主导&#xff0c;前端能做的只是校验一下数据、操作一下 DOM。&#xff08;其中数据检验是 JS 产生的根本原因&#xff1a;当时网络太慢&#xff0c;在服务端检验…

java连接mysql数据库(JDBC),存到二维数组里并输出

java连接mysql数据库都有固定的操作&#xff0c;步骤如下&#xff1a; 加载mysql驱动&#xff0c;一般都是com.mysql.jdbc.Driver。提供JDBC连接的URL。 创建数据库的连接。要连接数据库&#xff0c;需要向java.sql.DriverManager请求并获得Connection对象。 创建一个Statem…

保驾护航金三银四,万字解析!

从事前端开发工作差不多3年了&#xff0c;自己也从一个什么都不懂的小白积累了一定的理论和实践经验&#xff0c;并且自己也对这3年来的学习实践历程有一个梳理&#xff0c;以供后面来细细回忆品味。 1、为什么选择学习前端开发&#xff1f; 你可能是因为兴趣&#xff0c;完成…

数据降维技术——PCA(主成分分析)

为什么要对数据进行降维&#xff1f; 在机器学习或者数据挖掘中&#xff0c;我们往往会get到大量的数据源&#xff0c;这些数据源往往有很多维度来表示它的属性&#xff0c;但是我们在实际处理中只需要其中的几个主要的属性&#xff0c;而其他的属性或被当成噪声处理掉。比如&a…

保驾护航金三银四,使用指南

前言 作为一个程序员&#xff0c;当然总是期望自己的代码能「一次编写&#xff0c;四处运行」&#xff0c;但真实经验往往是「一处修改&#xff0c;百处填坑」&#xff0c;依赖落后了好几个版本了想要升级、老代码已经看着很不爽了打算重构&#xff0c;都需要下坚决的决心&…

社交网络初探——链路预测

社交网络可以用来描述现实社会中的实际网络&#xff0c;它包括人与人之间的社会关系&#xff0c;物种之间的捕食关系&#xff0c;科学研究中的合作关系等。大量研究已经表明在真实世界中各种不同社交网络具有许多共同的结构特征&#xff0c;例如小世界性质、无标度性、社团结构…