在CSS中,非布局样式是指那些不会直接影响页面布局的样式。这些样式主要关注的是元素的颜色、字体、背景、边框、阴影等视觉效果。以下是一些常见的非布局CSS样式:
这些非布局样式可以帮助你创建富有吸引力的页面效果,而不会改变页面的基本布局。
使用CSS的边框属性,我们可以制作一个三角形。制作的基本原理是:只给一个边框,其它三个边框都为0。这样,元素就会形成一个三角形的形状。具体实现如下:
首先,我们需要一个具有定位的父元素,这里我们使用position: relative
,这样我们可以相对于这个元素进行定位。然后我们创建一个子元素,给它一个position: absolute
,这样它就会相对于父元素进行定位。然后我们给这个子元素一个边框,其它三个边框都为0,这样它就会形成一个三角形。
以下是具体的HTML和CSS代码:
HTML:
<div class="triangle">
<div>div>
div>
CSS:
.triangle {
position: relative;
width: 100px;
height: 100px;
}
.triangle div {
border-left: 50px solid transparent;
border-right: 50px solid transparent;
border-bottom: 100px solid red;
position: absolute;
top: -50px;
left: 0;
}
以上代码将创建一个红色的三角形,其底边在下,尖端在上。您可以根据需要修改border-bottom
的值以改变三角形的大小,也可以修改border-left
和border-right
的值以改变三角形的形状。
overflow-wrap
、word-break
和 white-space
这三个属性一起决定了浏览器如何处理文本换行。overflow-wrap
属性允许在单词太长无法适应包裹盒时,浏览器是否应该中断这个单词并换行。word-break
属性指定了如何在单词内断行,特别是在处理 CJK(中文/日文/韩文)文字时。white-space
属性则控制了空白处是否应该换行。如果你想让文本不换行,可以设置 white-space: nowrap
。如果你想让文本可以自由换行,可以设置 white-space: pre-wrap
。
CSS Hack
CSS Hack 是一种针对不同浏览器(如 Internet Explorer、Chrome、Firefox 等)的特定版本进行样式调整的技术。它通常用于解决不同浏览器对 CSS 解析的差异,以确保样式在所有浏览器中都能正确显示。
CSS Hack 的使用方式通常是在 CSS 样式中加入一些特定于浏览器的代码,从而针对特定版本的浏览器进行样式调整。但是,这种做法并不推荐,因为它增加了 CSS 代码的复杂性,并且可能导致样式维护的困难。此外,随着浏览器版本的更新,一些 CSS Hack 可能不再有效。
特性检测是一种更现代、更推荐的方法,用于解决浏览器的兼容性问题。它通过检查浏览器是否支持特定的 CSS 特性,然后根据支持情况应用相应的样式。这种方法更加灵活,可以更好地适应浏览器的变化。
另外,使用 CSS 的伪类和伪元素也是一种解决浏览器兼容性问题的方法。例如,:hover
伪类可以用于在鼠标悬停时改变元素的样式,而 ::before
和 ::after
伪元素可以用于在元素的内容前后插入内容。
最后,使用前端框架(如 Bootstrap、Foundation 等)也可以帮助解决浏览器的兼容性问题,因为这些框架已经针对不同的浏览器进行了优化和调整。
CSS(层叠样式表)是一种用于描述HTML(或XML和SVG等其他标记语言)文档样式的样式表语言。CSS描述了如何在视觉表示设备(例如屏幕,打印机等)上呈现HTML元素。
box-shadow
:这是CSS3的一个新特性,可以给HTML元素添加阴影效果。你可以通过box-shadow
属性设置阴影的水平偏移,垂直偏移,模糊距离,阴影的颜色等。例如:box-shadow: 10px 10px 5px grey;
这将给元素添加一个偏移10px,模糊距离5px,颜色为灰色的阴影。
2. text-shadow
:这个属性用于给文本添加阴影效果。与box-shadow
类似,你可以通过text-shadow
设置文本的阴影水平偏移,垂直偏移,模糊距离,阴影的颜色等。例如:
text-shadow: 5px 5px 2px black;
这将给文本添加一个偏移5px,模糊距离2px,颜色为黑色的阴影。
3. border-radius
:这个属性用于设置HTML元素的边框的圆角程度。例如:
border-radius: 10px;
这将给元素的四个角都添加10px的圆角。
4. background
:这个属性用于设置HTML元素的背景。你可以通过background
属性一次性设置背景颜色,背景图片,背景位置等。例如:
background: #ffffff url("image.png") no-repeat center center;
这将给元素设置一个白色背景,同时添加一个位于中心位置的背景图片。
5. clip-path
:这个属性用于裁剪HTML元素的形状。通过使用不同的形状函数,你可以创建各种有趣的形状。例如:
clip-path: circle(50%);
这将创建一个圆形裁剪区域,元素只有在这个区域内才会显示。
CSS布局主要有以下几种方式:
常见的布局属性
(1)display 确定元素的显示类型:
block:块级元素。
inline:行内元素。
inline-block:对外的表现是行内元素(不会独占一行),对内的表现是块级元素(可以设置宽高)。
(2)position 确定元素的位置:
static:默认属性值。
relative:相对定位。相对于元素本身进行偏移,不会改变它所占据的空间。
absolute:绝对定位。相对于父元素中最近的 relative/absolute 进行偏移,会脱离文档流。音标:[ˈæbsəluːt]。
fixed:固定定位。相对于可视区域固定,会脱离文档流。
relative、absolute、fixed这三个属性,可以结合 z-index 来设置层级。
#常见的布局方法
1、table 表格布局:早期使用的布局,如今用得很少。
2、float 浮动 + margin:为了兼容低版本的IE浏览器,很多网站(比如腾讯新闻、网易新闻、淘宝等)都会采用 float 布局。
3、inline-block 布局:对外的表现是行内元素(不会独占一行),对内的表现是块级元素(可以设置宽高)。
4、flex 布局:为布局而生,非常灵活,是最为推荐的布局写法。
上图中可以看到, flex 布局不支持 IE9 及以下的版本。如果你的页面不需要处理 IE浏览器的兼容性问题,则可以放心大胆地使用 flex 布局。
flex 是一种现代的布局方式,是 W3C 第一次提供真正用于布局的 CSS 规范。
在 CSS 中,float 属性用于让一个元素脱离正常的文档流,并向左或向右移动,直到它碰到其容器或另一个浮动元素。这个属性常用于实现文字环绕图片等效果。
float 布局的特点包括:
float 布局在实现一些特定的页面布局时非常有用,例如多栏布局、文字环绕图片等。但需要注意的是,使用 float 布局时需要注意控制元素的位置和清除浮动,避免出现布局问题。
上图中,可以看到,div1设置为浮动后,会脱离文档流,不会对div2的布局造成影响;但是div1不会脱离文本流,它会影响div2中文字的排列。
其实,这正是 float 属性的作用。float 本身是用来做图文混排、文字环绕的效果。
HTML:
<div class="container">
<div class="box" style="float:left;width:50%;background-color:lightblue;">Box 1div>
<div class="box" style="float:right;width:50%;background-color:lightgreen;">Box 2div>
div>
在这个例子中,我们有两个盒子(Box 1和Box 2),它们都设置为浮动到容器的左边和右边,并且各占据容器宽度的一半。
CSS:
.container {
width: 100%;
height: 200px;
padding: 10px;
}
.box {
height: 100px;
margin: 5px;
text-align: center;
line-height: 100px;
}
在这个样式中,容器(.container)的宽度是100%,高度是200px,并且有一些内边距。盒子(.box)的高度是100px,上下边距是5px,文字居中,行高使文字垂直居中。
当一个元素被设置为浮动时,它会从正常的文档流中脱离出来,并尽可能地靠左或靠右浮动。这使得它可以用来实现文字环绕图片等效果。同时,浮动元素会形成块级框(Block Formatting Context,BFC),这是为了防止浮动元素影响到其他元素的布局。
如果一个元素被设置为浮动,它不会影响到其他块级元素的布局。但是,如果浮动元素后面还有其他元素,那么这个元素可能会被“推挤”到浮动元素的下方,因为浮动元素已经脱离了文档流,后面元素的布局会受到影响。
当一个元素的子元素被设置为浮动时,父级元素的高度可能会塌陷。这是因为浮动元素已经脱离了文档流,不在父级元素的文档流中,这使得父级元素无法撑开其高度。解决这个问题的一种常见方法是使用“清除浮动”(clearfix)的技术,通过添加额外的标记来清除浮动的影响。
对外的表现是行内元素(不会独占一行),对内的表现是块级元素(可以设置宽高)
inline-block 布局是一种常用的 CSS 布局方式,它可以将元素显示为行内块级元素,即元素会在同一行内排列,并且可以设置宽度和高度。
使用 inline-block 布局可以解决一些浮动布局的问题,例如无需清除浮动,不会造成父级元素高度塌陷等。同时,inline-block 布局还有一些其他的优点,例如可以轻松地实现文字环绕效果、方便地控制元素之间的间距等。
下面是一个简单的示例,展示了如何使用 inline-block 布局:
HTML:
<div class="container">
<div class="box">Box 1div>
<div class="box">Box 2div>
<div class="box">Box 3div>
div>
CSS:
.container {
width: 100%;
height: 400px;
padding: 10px;
}
.box {
display: inline-block;
width: 25%;
height: 150px;
margin: 5px;
text-align: center;
line-height: 150px;
}
在这个示例中,三个 box 元素被设置为 inline-block,它们将按照容器宽度均分排列,并且可以设置各自的宽度和高度。
inline-block布局是一种CSS布局方式,它可以将元素显示为行内块级元素,即元素会在同一行内排列,并且可以设置宽度和高度。
使用inline-block布局的优点包括:
使用inline-block布局时需要注意以下几点:
响应式布局是一种根据设备屏幕及浏览器宽度自适应的网页设计方法。它能够兼容多个终端,而不是为每个终端做一个特定的版本,为解决移动互联网浏览而诞生。响应式布局可以为不同终端的用户提供更加舒适的界面和更好的用户体验。随着大屏幕移动设备的普及,响应式布局已成为网页设计的主流趋势。
在实现响应式布局时,可以通过多种方式来适应不同的屏幕尺寸和设备类型。其中,弹性布局和混合布局是两种常用的方法。弹性布局以百分比作为页面的基本单位,可以适应一定范围内所有尺寸的设备屏幕及浏览器宽度,并能完美利用有效空间展现最佳效果。混合布局则是结合了固定布局和弹性布局的特点,能够适应一定范围内所有尺寸的设备屏幕及浏览器宽度,并能完美利用有效空间展现最佳效果。
为了实现响应式布局,设计师可以采用多种技术和工具。其中,CSS3媒体查询是实现响应式布局的关键技术之一,它可以根据设备的特性(如屏幕宽度)来应用不同的样式规则。此外,Bootstrap等现成的响应式框架和工具也可以帮助设计师更快地实现响应式布局。
响应式布局已成为现代网页设计的重要趋势,它能够提供更好的用户体验和设备兼容性,是网页设计师必备的技能之一。
响应式布局的实现主要依赖于媒体查询(Media Queries)、流式布局(Fluid Layouts)和弹性布局(Flexbox)等技术。
除了以上技术外,响应式布局还可以通过混合布局、CSS3的transform和transition等技术来实现。在实际应用中,我们可以根据具体需求选择合适的技术和方法来实现响应式布局,从而提高网页的用户体验和设备兼容性。
以下是一个简单的响应式布局的代码示例:
HTML:
DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="styles.css">
head>
<body>
<div class="container">
<div class="item">Item 1div>
<div class="item">Item 2div>
<div class="item">Item 3div>
<div class="item">Item 4div>
<div class="item">Item 5div>
div>
body>
html>
CSS(styles.css):
.container {
display: flex;
flex-wrap: wrap;
}
.item {
flex: 1 0 200px;
border: 1px solid #ccc;
padding: 20px;
margin: 10px;
}
@media (max-width: 600px) {
.item {
flex: 1 0 100%;
}
}
在这个示例中,我们使用了弹性布局(flexbox)和媒体查询(media queries)来实现响应式布局。当屏幕宽度小于600px时,每个项目(item)会占据整行,以适应较小的屏幕尺寸。
https://web.qianguyihao.com/03-CSS%E8%BF%9B%E9%98%B6/03-%E7%BD%91%E9%A1%B5%E8%AE%BE%E8%AE%A1%E5%92%8C%E5%BC%80%E5%8F%91%E4%B8%AD%EF%BC%8C%E5%85%B3%E4%BA%8E%E5%AD%97%E4%BD%93%E7%9A%84%E5%B8%B8%E8%AF%86.html#字体分类
在网页设计和开发中,关于字体的常识主要包括以下几点:
大多数情况下,网页使用系统默认的字体就足够了。如果要使用特殊字体,顶多只是让阿拉伯数字使用特殊字体。中文和英文,使用默认字体,完全足够。
如果确实要使用特殊字体,只有这几种办法:
使用开源的免费字体(比如思源黑体、阿里巴巴普惠体等)。但这类字体,种类很少,而且大多不是很好看。网页开发中,基本没人用。
单独购买第三方的商用字体,获得授权。
自己公司(找人)开发一套字体,给自己人用。
font-weight属性是用于控制字体的粗细程度的CSS属性。它可以用数字或关键字来表示,数字范围在100到900之间,关键字有normal、bold、bolder、lighter四种。
具体来说,数字100表示最细的字体,900表示最粗的字体,而normal表示默认的字体粗细度(400),bold表示粗体(700),bolder表示比继承值更粗(比父元素更粗),lighter表示比继承值更细(比父元素更细)。