CSS 链接不同的链接可以有不同的样式。链接样式链接的样式，可以用任何CSS属性（如颜色，字体，背景等）。特别的链接，可以有不同的样式，这取决于他们是什么状态。这四个链接状态是：a:link - 正常，未访问过的链接a:visited - 用户已访问过的链接a:hover - 当用户鼠标放在链接上时a:active - 链接被点击的那一刻a:link {color:#000000;} /* 未访问链接*/ a:visited {color:#00FF00;} /* 已访问链接 */ a:hover {color:#FF00FF;} /* 鼠标移动到链接上 */ a:active {color:#0000FF;} /* 鼠标点击时 */当设置为若干链路状态的样式，也有一些顺序规则：a:hover 必须跟在 a:link 和 a:visited后面a:active 必须跟在 a:hover后面常见的链接样式根据上述链接的颜色变化的例子，看它是在什么状态。让我们通过一些其他常见的方式转到链接样式：文本修饰text-decoration 属性主要用于删除链接中的下划线：a:link {text-decoration:none;} a:visited {text-decoration:none;} a:hover {text-decoration:underline;} a:active {text-decoration:underline;}背景颜色背景颜色属性指定链接背景色：a:link {background-color:#B2FF99;} a:visited {background-color:#FFFF85;} a:hover {background-color:#FF704D;} a:active {background-color:#FF704D;}CSS 列表CSS 列表属性作用如下：设置不同的列表项标记为有序列表设置不同的列表项标记为无序列表设置列表项标记为图像列表在 HTML中，有两种类型的列表：无序列表 ul - 列表项标记用特殊图形（如小黑点、小方框等）有序列表 ol - 列表项的标记有数字或字母使用 CSS，可以列出进一步的样式，并可用图像作列表项标记。无序列表如下所示:CoffeeTeaCoca Cola有序列表如下所示:CoffeeTeaCoca Cola不同的列表项标记list-style-type属性指定列表项标记的类型是：ul.a {list-style-type: circle;} ul.b {list-style-type: square;}ol.c {list-style-type: upper-roman;} ol.d {list-style-type: lower-alpha;}一些值是无序列表，以及有些是有序列表。作为列表项标记的图像要指定列表项标记的图像，使用列表样式图像属性：ul { list-style-image: url('sqpurple.gif'); }上面的例子在所有浏览器中显示并不相同，IE 和 Opera 显示图像标记比火狐，Chrome 和 Safari更高一点点。如果你想在所有的浏览器放置同样的形象标志，就应使用浏览器兼容性解决方案，过程如下浏览器兼容性解决方案同样在所有的浏览器，下面的例子会显示的图像标记：ul { list-style-type: none; padding: 0px; margin: 0px; } ul li { background-image: url(sqpurple.gif); background-repeat: no-repeat; background-position: 0px 5px; padding-left: 14px; }ui:设置列表类型为没有列表项标记设置填充和边距 0px（浏览器兼容性）ul 中所有 li:设置图像的 URL，并设置它只显示一次（无重复）您需要的定位图像位置（左 0px 和上下 5px）用 padding-left 属性把文本置于列表中列表 - 简写属性在单个属性中可以指定所有的列表属性。这就是所谓的简写属性。为列表使用简写属性，列表样式属性设置如下：ul { list-style: square url("sqpurple.gif"); }可以按顺序设置如下属性：list-style-typelist-style-position (有关说明，请参见下面的CSS属性表)list-style-image如果上述值丢失一个，其余仍在指定的顺序，就没关系。CSS 表格使用 CSS 可以使 HTML 表格更美观。表格边框指定CSS表格边框，使用border属性。下面的例子指定了一个表格的Th和TD元素的黑色边框：table, th, td { border: 1px solid black; }请注意，在上面的例子中的表格有双边框。这是因为表和th/ td元素有独立的边界。为了显示一个表的单个边框，使用 border-collapse属性。折叠边框border-collapse 属性设置表格的边框是否被折叠成一个单一的边框或隔开：table { border-collapse:collapse; } table,th, td { border: 1px solid black; }表格宽度和高度Width和height属性定义表格的宽度和高度。下面的例子是设置100％的宽度，50像素的th元素的高度的表格：table { width:100%; } th { height:50px; }表格文字对齐表格中的文本对齐和垂直对齐属性。text-align属性设置水平对齐方式，向左，右，或中心td { text-align:right; }垂直对齐属性设置垂直对齐，比如顶部，底部或中间：td { height:50px; vertical-align:bottom; }表格颜色下面的例子指定边框的颜色，和th元素的文本和背景颜色：table, td, th { border:1px solid green; } th { background-color:green; color:white; }CSS 盒子模型CSS 盒子模型(Box Model)所有HTML元素可以看作盒子，在CSS中，"box model"这一术语是用来设计和布局时使用。CSS盒模型本质上是一个盒子，封装周围的HTML元素，它包括：边距，边框，填充，和实际内容。盒模型允许我们在其它元素和周围元素边框之间的空间放置元素。下面的图片说明了盒子模型(Box Model)：不同部分的说明：Margin(外边距) - 清除边框外的区域，外边距是透明的。Border(边框) - 围绕在内边距和内容外的边框。Padding(内边距) - 清除内容周围的区域，内边距是透明的。Content(内容) - 盒子的内容，显示文本和图像。为了正确设置元素在所有浏览器中的宽度和高度，你需要知道的盒模型是如何工作的。元素的宽度和高度Remark重要: 当您指定一个 CSS 元素的宽度和高度属性时，你只是设置内容区域的宽度和高度。要知道，完整大小的元素，你还必须添加内边距，边框和外边距。下面的例子中的元素的总宽度为 450px： div { width: 300px; border: 25px solid green; padding: 25px; margin: 25px; }让我们自己算算：300px (宽)+ 50px (左 + 右填充)+ 50px (左 + 右边框)+ 50px (左 + 右边距)= 450px试想一下，你只有 250 像素的空间。让我们设置总宽度为 250 像素的元素:div { width: 220px; padding: 10px; border: 5px solid gray; margin: 0; }最终元素的总宽度计算公式是这样的：总元素的宽度=宽度+左填充+右填充+左边框+右边框+左边距+右边距元素的总高度最终计算公式是这样的：总元素的高度=高度+顶部填充+底部填充+上边框+下边框+上边距+下边距浏览器的兼容性问题一旦为页面设置了恰当的 DTD，大多数浏览器都会按照上面的图示来呈现内容。然而 IE 5 和 6 的呈现却是不正确的。根据 W3C 的规范，元素内容占据的空间是由 width 属性设置的，而内容周围的 padding 和 border 值是另外计算的。不幸的是，IE5.X 和 6 在怪异模式中使用自己的非标准模型。这些浏览器的 width 属性不是内容的宽度，而是内容、内边距和边框的宽度的总和。虽然有方法解决这个问题。但是目前最好的解决方案是回避这个问题。也就是，不要给元素添加具有指定宽度的内边距，而是尝试将内边距或外边距添加到元素的父元素和子元素。IE8 及更早IE版本不支持设置填充的宽度和边框的宽度属性。解决IE8及更早版本不兼容问题可以在HTML页面声明 即可。CSS 边框CSS 边框属性CSS边框属性允许你指定一个元素边框的样式和颜色。边框样式边框样式属性指定要显示什么样的边界。border-style属性用来定义边框的样式border-style 值:none: 默认无边框dotted: 定义一个点线边框dashed: 定义一个虚线边框solid: 定义实线边框double: 定义两个边框。 两个边框的宽度和 border-width 的值相同groove: 定义3D沟槽边框。效果取决于边框的颜色值ridge: 定义3D脊边框。效果取决于边框的颜色值inset:定义一个3D的嵌入边框。效果取决于边框的颜色值outset: 定义一个3D突出边框。 效果取决于边框的颜色值边框宽度您可以通过 border-width 属性为边框指定宽度。为边框指定宽度有两种方法：可以指定长度值，比如 2px 或 0.1em(单位为 px, pt, cm, em 等)，或者使用 3 个关键字之一，它们分别是 thick 、medium（默认值） 和 thin。注意：CSS 没有定义 3 个关键字的具体宽度，所以一个用户可能把 thick 、medium 和 thin 分别设置为等于 5px、3px 和 2px，而另一个用户则分别设置为 3px、2px 和 1px。p.one { border-style:solid; border-width:5px; } p.two { border-style:solid; border-width:medium; } 边框颜色border-color属性用于设置边框的颜色。可以设置的颜色：name - 指定颜色的名称，如 "red"RGB - 指定 RGB 值, 如 "rgb(255,0,0)"Hex - 指定16进制值, 如 "#ff0000"您还可以设置边框的颜色为"transparent"。注意： border-color单独使用是不起作用的，必须得先使用border-style来设置边框样式。p.one { border-style:solid; border-color:red; } p.two { border-style:solid; border-color:#98bf21; }边框-单独设置各边在CSS中，可以指定不同的侧面不同的边框：p { border-top-style:dotted; border-right-style:solid; border-bottom-style:dotted; border-left-style:solid; }上面的例子也可以设置一个单一属性：border-style:dotted solid;border-style属性可以有1-4个值：border-style:dotted solid double dashed上边框是 dotted右边框是 solid底边框是 double左边框是 dashedborder-style:dotted solid double;上边框是 dotted左、右边框是 solid底边框是 doubleborder-style:dotted solid;上、底边框是 dotted右、左边框是 solidborder-style:dotted;四面边框是 dotted上面的例子用了border-style。然而，它也可以和border-width 、 border-color一起使用。边框-简写属性上面的例子用了很多属性来设置边框。你也可以在一个属性中设置边框。你可以在"border"属性中设置：border-width border-style (required) border-color border:5px solid red;CSS 轮廓（outline）轮廓（outline）是绘制于元素周围的一条线，位于边框边缘的外围，可起到突出元素的作用。CSS outline 属性规定元素轮廓的样式、颜色和宽度。CSS margin(外边距)CSS margin(外边距)属性定义元素周围的空间。marginmargin 清除周围的（外边框）元素区域。margin 没有背景颜色，是完全透明的。margin 可以单独改变元素的上，下，左，右边距，也可以一次改变所有的属性。可能的值值说明auto设置浏览器边距。这样做的结果会依赖于浏览器length定义一个固定的margin（使用像素，pt，em等）%定义一个使用百分比的边距 Margin可以使用负值，重叠的内容。Margin - 单边外边距属性在CSS中，它可以指定不同的侧面不同的边距：- margin-top:100px; - margin-bottom:100px; - margin-right:50px; - margin-left:50px; margin属性可以有一到四个值。margin:25px 50px 75px 100px;上边距为25px右边距为50px下边距为75px左边距为100pxmargin:25px 50px 75px;上边距为25px左右边距为50px下边距为75pxmargin:25px 50px;上下边距为25px左右边距为50pxmargin:25px;所有的4个边距都是25pxCSS padding（填充）CSS padding（填充）是一个简写属性，定义元素边框与元素内容之间的空间，即上下左右的内边距。padding（填充）当元素的 padding（填充）内边距被清除时，所释放的区域将会受到元素背景颜色的填充。单独使用 padding 属性可以改变上下左右的填充。填充- 单边内边距属性在CSS中，它可以指定不同的侧面不同的填充：padding-top:25px; padding-bottom:25px; padding-right:50px; padding-left:50px;上内边距是 25px右内边距是 50px下内边距是 25px左内边距是 50px填充 - 简写属性为了缩短代码，它可以在一个属性中指定的所有填充属性。这就是所谓的简写属性。所有的填充属性的简写属性是 padding :padding:25px 50px;Padding属性，可以有一到四个值。padding:25px 50px 75px 100px;上填充为25px右填充为50px下填充为75px左填充为100px padding:25px 50px 75px;上填充为25px左右填充为50px下填充为75pxpadding:25px 50px;上下填充为25px左右填充为50pxCSS 分组 和 嵌套 选择器分组选择器在样式表中有很多具有相同样式的元素。h1 { color:green; } h2 { color:green; } p { color:green; }为了尽量减少代码，你可以使用分组选择器。每个选择器用逗号分隔。在下面的例子中，我们对以上代码使用分组选择器：h1,h2,p { color:green; }嵌套选择器它可能适用于选择器内部的选择器的样式。在下面的例子设置了四个样式：p{ }: 为所有 p 元素指定一个样式。.marked{ }: 为所有 class="marked" 的元素指定一个样式。.marked p{ }: 为所有 class="marked" 元素内的 p 元素指定一个样式。p.marked{ }: 为所有 class="marked" 的 p 元素指定一个样式。p { color:blue; text-align:center; } .marked { background-color:red; } .marked p { color:white; } p.marked{ text-decoration:underline; }CSS Display(显示) 与 Visibility（可见性）display属性设置一个元素应如何显示，visibility属性指定一个元素应可见还是隐藏。隐藏元素 - display:none或visibility:hidden隐藏一个元素可以通过把display属性设置为"none"，或把visibility属性设置为"hidden"。但是请注意，这两种方法会产生不同的结果。visibility:hidden可以隐藏某个元素，但隐藏的元素仍需占用与未隐藏之前一样的空间。也就是说，该元素虽然被隐藏了，但仍然会影响布局。h1.hidden {visibility:hidden;}display:none可以隐藏某个元素，且隐藏的元素不会占用任何空间。也就是说，该元素不但被隐藏了，而且该元素原本占用的空间也会从页面布局中消失。h1.hidden {display:none;}CSS 网页布局网页布局网页布局有很多种方式，一般分为以下几个部分：头部区域、菜单导航区域、内容区域、底部区域。头部区域头部区域位于整个网页的顶部，一般用于设置网页的标题或者网页的 logo：.header { background-color: #F1F1F1; text-align: center; padding: 20px; }菜单导航区域菜单导航条包含了一些链接，可以引导用户浏览其他页面：/* 导航条 */ .topnav { overflow: hidden; background-color: #333; } /* 导航链接 */ .topnav a { float: left; display: block; color: #f2f2f2; text-align: center; padding: 14px 16px; text-decoration: none; } /* 链接 - 修改颜色 */ .topnav a:hover { background-color: #ddd; color: black; }内容区域内容区域一般有三种形式:1 列：一般用于移动端2 列：一般用于平板设备3 列：一般用于 PC 桌面设备我们将创建一个 3 列布局，在小的屏幕上将会变成 1 列布局（响应式）：/* 创建三个相等的列 */ .column { float: left; width: 33.33%; } /* 列后清除浮动 */ .row:after { content: ""; display: table; clear: both; } /* 响应式布局 - 小于 600 px 时改为上下布局 */ @media screen and (max-width: 600px) { .column { width: 100%; } }提示:要设置两列可以设置 width 为 50%。创建 4 列可以设置为 25%。提示:如果你想了解更多 @media 的规则可以查看 CSS3 多媒体查询。提示: 现在更高级的方式是使用 CSS Flexbox 来创建列的布局，但 Internet Explorer 10 及更早的版本不支持该方式， IE6-10 可以使用浮动方式。CSS Flexbox 的更多内容可以查看 CSS3 弹性盒子(Flex Box)。不相等的列不相等的列一般是在中间部分设置内容区域，这块也是最大最主要的，左右两次侧可以作为一些导航等相关内容，这三列加起来的宽度是 100％。.column { float: left; } /* 左右侧栏的宽度 */ .column.side { width: 25%; } /* 中间列宽度 */ .column.middle { width: 50%; } /* 响应式布局 - 宽度小于600px时设置上下布局 */ @media screen and (max-width: 600px) { .column.side, .column.middle { width: 100%; } }底部区域底部区域在网页的最下方，一般包含版权信息和联系方式等。.footer { background-color: #F1F1F1; text-align: center; padding: 10px; }响应式网页布局通过以上等学习我们来创建一个响应式等页面，页面的布局会根据屏幕的大小来调整：* { box-sizing: border-box; } body { font-family: Arial; padding: 10px; background: #f1f1f1; } /* 头部标题 */ .header { padding: 30px; text-align: center; background: white; } .header h1 { font-size: 50px; } /* 导航条 */ .topnav { overflow: hidden; background-color: #333; } /* 导航条链接 */ .topnav a { float: left; display: block; color: #f2f2f2; text-align: center; padding: 14px 16px; text-decoration: none; } /* 链接颜色修改 */ .topnav a:hover { background-color: #ddd; color: black; } /* 创建两列 */ /* Left column */ .leftcolumn { float: left; width: 75%; } /* 右侧栏 */ .rightcolumn { float: left; width: 25%; background-color: #f1f1f1; padding-left: 20px; } /* 图像部分 */ .fakeimg { background-color: #aaa; width: 100%; padding: 20px; } /* 文章卡片效果 */ .card { background-color: white; padding: 20px; margin-top: 20px; } /* 列后面清除浮动 */ .row:after { content: ""; display: table; clear: both; } /* 底部 */ .footer { padding: 20px; text-align: center; background: #ddd; margin-top: 20px; } /* 响应式布局 - 屏幕尺寸小于 800px 时，两列布局改为上下布局 */ @media screen and (max-width: 800px) { .leftcolumn, .rightcolumn { width: 100%; padding: 0; } } /* 响应式布局 -屏幕尺寸小于 400px 时，导航等布局改为上下布局 */ @media screen and (max-width: 400px) { .topnav a { float: none; width: 100%; } }CSS 总结本教程已向你讲解了如何创建样式表来同时控制多重页面的样式和布局。你已经学会如何使用 CSS 来添加背景、格式化文本、以及格式化边框，并定义元素的填充和边距。同时，你也学会了如何定位元素、控制元素的可见性和尺寸、设置元素的形状、将一个元素置于另一个之后，以及向某些选择器添加特殊的效果，比如链接。你已经学习了CSS,下一步学习什么呢?下一步应该学习 JavaScript 。JavaScript 是最流行的语言之一。JavaScript 属于 web 语言，它适用于 PC、笔记本电脑、平板电脑和移动电话。JavaScript可以使您的网站更具活力。许多 HTML 开发者都不是程序员，但是 JavaScript 却拥有非常简单的语法。几乎每个人都没有能力将小的 JavaScript 片段添加到网页中。其实我连JS都不会
在学习CSS之前，你需要对HTML有一定的了解。点击这里学习HTML的基础。简介CSS (Cascading Style Sheets，层叠样式表），是一种用来为结构化文档（如 HTML 文档或 XML 应用）添加样式（字体、间距和颜色等）的计算机语言，CSS 文件扩展名为 .css。通过使用 CSS 可以大大提升网页开发的工作效率在教程中，您会学到如何使用 CSS 同时控制多重网页的样式和布局。什么是 CSS?CSS 指层叠样式表 (Cascading Style Sheets)样式定义如何显示 HTML 元素样式通常存储在样式表中把样式添加到 HTML 4.0 中，是为了解决内容与表现分离的问题外部样式表可以极大提高工作效率外部样式表通常存储在 CSS 文件中多个样式定义可层叠为一个正片开始CSS 语法CSS 实例CSS声明总是以分号 ; 结束，声明总以大括号 {} 括起来p {color:red;text-align:center;}为了让CSS可读性更强，你可以每行只描述一个属性p { color:red; text-align:center; } CSS 注释注释是用来解释你的代码，并且可以随意编辑它，浏览器会忽略它。CSS注释以 /* 开始, 以 */ 结束, 实例如下/*这是个注释*/ p { text-align:center; /*这是另一个注释*/ color:black; font-family:arial; } CSS 的Id 和 Classid 和 class 的选择如果你要在HTML元素中设置CSS样式，你需要在元素中设置"id" 和 "class"：<.....id="..." class="...">id 的选择id 选择器可以为标有特定 id 的 HTML 元素指定特定的样式。HTML元素以id属性来设置id选择器,CSS 中 id 选择器以 "#" 来定义。以下的样式规则应用于元素属性 id="para1":#para1 { text-align:center; color:red; }提示：ID属性尽量以字母开头，数字开头的ID在 Mozilla/Firefox 浏览器中不起作用。class 的选择class 选择器用于描述一组元素的样式，class 选择有别于id选择，class可以在多个元素中使用。class 选择器在 HTML 中以 class 属性表示, 在 CSS 中，类选择器以一个点 . 号显示：在以下的例子中，所有拥有 center 类的 HTML 元素均为居中。.center {text-align:center;}你也可以指定特定的 HTML 元素使用 class。在以下实例中, 所有的 p 元素使用 class="center" 让该元素的文本居中p.center {text-align:center;}多个 class 选择器可以使用空格分开..center { text-align:center; } .color { color:#ff0000; }CSS的 创建当读到一个样式表时，浏览器会根据它来格式化 HTML 文档。如何插入样式表插入样式表的方法有三种:外部样式表(External style sheet)内部样式表(Internal style sheet)内联样式(Inline style)外部样式表当样式需要应用于很多页面时，外部样式表将是理想的选择。在使用外部样式表的情况下，你可以通过改变一个文件来改变整个站点的外观。每个页面使用 标签链接到样式表。 标签在（文档的）头部： 浏览器会从文件 mystyle.css 中读到样式声明，并根据它来格式文档。外部样式表可以在任何文本编辑器中进行编辑。文件不能包含任何的 html 标签。样式表应该以 .css 扩展名进行保存。下面是一个样式表文件的例子：hr {color:sienna;} p {margin-left:20px;} body {background-image:url("/images/back40.gif");}提示：不要在属性值与单位之间留有空格（如："margin-left: 20 px" ），正确的写法是 "margin-left: 20px" 。）（是20px不是20 px）内部样式表当单个文档需要特殊的样式时，就应该使用内部样式表。你可以使用 内联样式由于要将表现和内容混杂在一起，内联样式会损失掉样式表的许多优势。请慎用这种方法，例如当样式仅需要在一个元素上应用一次时。要使用内联样式，你需要在相关的标签内使用样式（style）属性。Style 属性可以包含任何 CSS 属性。本例展示如何改变段落的颜色和左外边距： 这是一个段落。 多重样式如果某些属性在不同的样式表中被同样的选择器定义，那么属性值将从更具体的样式表中被继承过来。 例如，外部样式表拥有针对 h3 选择器的三个属性：h3 { color:red; text-align:left; font-size:8pt; }而内部样式表拥有针对 h3 选择器的两个属性：h3 { text-align:right; font-size:20pt; }假如拥有内部样式表的这个页面同时与外部样式表链接，那么 h3 得到的样式是：color:red; text-align:right; font-size:20pt;即颜色属性将被继承于外部样式表，而文字排列（text-alignment）和字体尺寸（font-size）会被内部样式表中的规则取代。多重样式优先级样式表允许以多种方式规定样式信息。样式可以规定在单个的 HTML 元素中，在 HTML 页的头元素中，或在一个外部的 CSS 文件中。甚至可以在同一个 HTML 文档内部引用多个外部样式表。一般情况下，优先级如下：（内联样式）Inline style > （内部样式）Internal style sheet >（外部样式）External style sheet > 浏览器默认样式style.css 文件样式代码如下：h3 { color:blue; }实例 显示绿色，是内部样式 注意：如果外部样式放在内部样式的后面，则外部样式将覆盖内部样式，实例如下 显示蓝色，是外部样式 背景CSS 背景属性用于定义HTML元素的背景。CSS 属性定义背景效果:background-colorbackground-imagebackground-repeatbackground-attachmentbackground-position背景颜色background-color 属性定义了元素的背景颜色.页面的背景颜色使用在body的选择器中:body {background-color:#b0c4de;}CSS中，颜色值通常以以下方式定义:十六进制 - 如："#ff0000"RGB - 如："rgb(255,0,0)"颜色名称 - 如："red"以下实例中, h1, p, 和 div 元素拥有不同的背景颜色:h1 {background-color:#6495ed;} p {background-color:#e0ffff;} div {background-color:#b0c4de;}背景图像background-image 属性描述了元素的背景图像.默认情况下，背景图像进行平铺重复显示，以覆盖整个元素实体.页面背景图片设置实例:body {background-image:url('paper.gif');}背景图像 - 水平或垂直平铺默认情况下 background-image 属性会在页面的水平或者垂直方向平铺。一些图像如果在水平方向与垂直方向平铺，这样看起来很不协调，如下所示: body { background-image:url('gradient2.png'); }如果图像只在水平方向平铺 (repeat-x), 页面背景会更好些:body { background-image:url('gradient2.png'); background-repeat:repeat-x; }背景图像- 设置定位与不平铺让背景图像不影响文本的排版如果你不想让图像平铺，你可以使用 background-repeat 属性:body { background-image:url('img_tree.png'); background-repeat:no-repeat; }以上实例中，背景图像与文本显示在同一个位置，为了让页面排版更加合理，不影响文本的阅读，我们可以改变图像的位置。可以利用 background-position 属性改变图像在背景中的位置:body { background-image:url('img_tree.png'); background-repeat:no-repeat; background-position:right top; } 背景- 简写属性在以上实例中我们可以看到页面的背景颜色通过了很多的属性来控制。为了简化这些属性的代码，我们可以将这些属性合并在同一个属性中.背景颜色的简写属性为 "background":body {background:#ffffff url('img_tree.png') no-repeat right top;}当使用简写属性时，属性值的顺序为：:background-colorbackground-imagebackground-repeatbackground-attachmentbackground-position以上属性无需全部使用，你可以按照页面的实际需要使用.背景属性一览标签描述background简写属性，作用是将背景属性设置在一个声明中。background-attachment背景图像是否固定或者随着页面的其余部分滚动。background-color设置元素的背景颜色。background-image把图像设置为背景。background-position设置背景图像的起始位置。background-repeat设置背景图像是否及如何重复。CSS 文本格式文本颜色颜色属性被用来设置文字的颜色。颜色是通过CSS最经常的指定：十六进制值 - 如: ＃FF0000一个RGB值 - 如: RGB(255,0,0)颜色的名称 - 如: red一个网页的背景颜色是指在主体内的选择：body {color:red;} h1 {color:#00ff00;} h2 {color:rgb(255,0,0);}对于W3C标准的CSS：如果你定义了颜色属性，你还必须定义背景色属性。文本的对齐方式文本排列属性是用来设置文本的水平对齐方式。文本可居中或对齐到左或右,两端对齐.当text-align设置为"justify"，每一行被展开为宽度相等，左，右外边距是对齐（如杂志和报纸）。h1 {text-align:center;} p.date {text-align:right;} p.main {text-align:justify;}文本修饰text-decoration 属性用来设置或删除文本的装饰。从设计的角度看 text-decoration属性主要是用来删除链接的下划线：a {text-decoration:none;}也可以这样装饰文字：h1 {text-decoration:overline;} h2 {text-decoration:line-through;} h3 {text-decoration:underline;不建议强调指出不是链接的文本，因为这常常混淆用户。文本转换文本转换属性是用来指定在一个文本中的大写和小写字母。可用于所有字句变成大写或小写字母，或每个单词的首字母大写。p.uppercase {text-transform:uppercase;} p.lowercase {text-transform:lowercase;} p.capitalize {text-transform:capitalize;}文本缩进文本缩进属性是用来指定文本的第一行的缩进。p {text-indent:50px;}所有CSS文本属性属性描述color设置文本颜色direction设置文本方向。letter-spacing设置字符间距line-height设置行高text-align对齐元素中的文本text-decoration向文本添加修饰text-indent缩进元素中文本的首行text-shadow设置文本阴影text-transform控制元素中的字母unicode-bidi设置或返回文本是否被重写vertical-align设置元素的垂直对齐white-space设置元素中空白的处理方式word-spacing设置字间距CSS 字体CSS字体属性定义字体，加粗，大小，文字样式。serif和sans-serif字体之间的区别在计算机屏幕上，sans-serif字体比serif字体容易阅读CSS字型在CSS中，有两种类型的字体系列名称：通用字体系列 - 拥有相似外观的字体系统组合（如 "Serif" 或 "Monospace"）特定字体系列 - 一个特定的字体系列（如 "Times" 或 "Courier"）Generic family字体系列说明SerifTimes New Roman GeorgiaSerif字体中字符在行的末端拥有额外的装饰Sans-serifArial Verdana"Sans"是指无 - 这些字体在末端没有额外的装饰MonospaceCourier New Lucida Console所有的等宽字符具有相同的宽度字体系列font-family 属性设置文本的字体系列。font-family 属性应该设置几个字体名称作为一种"后备"机制，如果浏览器不支持第一种字体，他将尝试下一种字体。注意: 如果字体系列的名称超过一个字，它必须用引号，如Font Family："宋体"。多个字体系列是用一个逗号分隔指明：p{font-family:"Times New Roman", Times, serif;}字体样式主要是用于指定斜体文字的字体样式属性。这个属性有三个值：正常 - 正常显示文本斜体 - 以斜体字显示的文字倾斜的文字 - 文字向一边倾斜（和斜体非常类似，但不太支持）p.normal {font-style:normal;} p.italic {font-style:italic;} p.oblique {font-style:oblique;}字体大小font-size 属性设置文本的大小。能否管理文字的大小，在网页设计中是非常重要的。但是，你不能通过调整字体大小使段落看上去像标题，或者使标题看上去像段落。请务必使用正确的HTML标签，就 - 表示标题和 表示段落：字体大小的值可以是绝对或相对的大小。绝对大小：设置一个指定大小的文本不允许用户在所有浏览器中改变文本大小确定了输出的物理尺寸时绝对大小很有用相对大小：相对于周围的元素来设置大小允许用户在浏览器中改变文字大小如果你不指定一个字体的大小，默认大小和普通文本段落一样，是16像素（16px=1em）第一篇教程完结。
前言这是我总结的HTML基础内容，会参些自己的见解，有错误或歧义请联系我。HTML是什么？超文本标记语言（英语：HyperText Markup Language，简称：HTML）是一种用于创建网页的标准标记语言。您可以使用 HTML 来建立自己的 WEB 站点，HTML 运行在浏览器上，由浏览器来解析。在本教程中，您将学习如何使用 HTML 来编写站点。HTML 很容易学习。（至少比PHP好学）实例展示教程包含了若干 HTML 实例。注意：本教程所引用的网址均为虚拟主机提供的免费网址。我不对非我自己的网站（hjz0713.top开头）的隐私泄露的任何处理！注意：对于中文网页需要使用 声明编码，否则会出现乱码。有些浏览器(如 360 浏览器)会设置 GBK 为默认编码，则你需要设置为 。 教程 标题(h1) 段落(p) 点击这里查看实例。HTML文档后缀*.html*.htm以上两种后缀名没有区别，都可以使用，且使用同一语法。正片开始HTML简介标签 声明为 HTML5 文档 元素是 HTML 页面的根元素 元素包含了文档的元（meta）数据，如 定义网页编码格式为 utf-8。 元素描述了文档的标题 元素包含了可见的页面内容 元素定义一个大标题 元素定义一个段落HTML 标签HTML 标记标签通常被称为 HTML 标签 (HTML tag)。HTML 标签是由尖括号包围的关键词，比如 HTML 标签通常是成对出现的，比如 和 标签对中的第一个标签是开始标签，第二个标签是结束标签开始和结束标签也被称为开放标签和闭合标签。基础HTML 标题HTML 标题（Heading）是通过 - 标签来定义的。 这是一个标题 这是一个标题 这是一个标题 HTML 段落HTML 段落是通过标签 来定义的。 这是一个段落。 这是一个段落。 这是一个段落。 hereHTML 链接HTML 链接是通过标签 来定义的。提示:需要在 href 属性中指定链接的地址。这是一个链接HTML 图像HTML 图像是通过标签 来定义的. HTML 元素HTML 文档由 HTML 元素定义。开始标签元素内容结束标签 这是一个段落 这是一个链接 换行无HTML 元素语法HTML 元素以开始标签起始HTML 元素以结束标签终止元素的内容是开始标签与结束标签之间的内容某些 HTML 元素具有空内容（empty content）空元素在开始标签中进行关闭（以开始标签的结束而结束）大多数 HTML 元素可拥有属性嵌套的 HTML 元素大多数 HTML 元素可以嵌套（HTML 元素可以包含其他 HTML 元素）。HTML 文档由相互嵌套的 HTML 元素构成。 这是第一个段落。 以上文档包含3个HTML嵌套元素。HTML 实例解析 元素: 这是第一个段落。 这个 元素定义了 HTML 文档中的一个段落。这个元素拥有一个开始标签 以及一个结束标签 .元素内容是: 这是第一个段落。 元素: 这是第一个段落。 元素定义了 HTML 文档的主体。这个元素拥有一个开始标签 以及一个结束标签 。元素内容是另一个 HTML 元素（ 元素）。 元素： 这是第一个段落。 元素定义了整个 HTML 文档。这个元素拥有一个开始标签 ，以及一个结束标签 .元素内容是另一个 HTML 元素（ 元素）。不要忘记结束标签即使您忘记了使用结束标签，大多数浏览器也会正确地显示 HTML： 这是一个段落 这是一个段落以上实例在浏览器中也能正常显示，因为关闭标签是可选的。但不要依赖这种做法。忘记使用结束标签会产生不可预料的结果或错误。HTML 空元素没有内容的 HTML 元素被称为空元素。空元素是在开始标签中关闭的。 就是没有关闭标签的空元素（ 标签定义换行）。在 XHTML、XML 以及未来版本的 HTML 中，所有元素都必须被关闭。在开始标签中添加斜杠，比如 ，是关闭空元素的正确方法，HTML、XHTML 和 XML 都接受这种方式。即使 在所有浏览器中都是有效的，但使用 其实是更长远的保障。HTML 提示：使用小写标签HTML 标签对大小写不敏感： 等同于 。所以许多网站都使用大写的 HTML 标签。本教程使用的是小写标签，因为万维网联盟（W3C）在 HTML 4 中推荐使用小写，而在未来 (X)HTML 版本中强制使用小写。HTML 属性HTML 元素可以设置属性属性可以在元素中添加附加信息属性一般描述于开始标签属性总是以名称/值对的形式出现，比如：name="value"。HTML 属性常用引用属性值属性值应该始终被包括在引号内。双引号是最常用的，不过使用单引号也没有问题。提示: 在某些个别的情况下，比如属性值本身就含有双引号，那么您必须使用单引号，例如：name='John "ShotGun" Nelson'HTML 提示：使用小写属性属性和属性值对大小写不敏感。不过，万维网联盟在其 HTML 4 推荐标准中推荐小写的属性/属性值。而新版本的 (X)HTML 要求使用小写属性。下面列出了适用于大多数 HTML 元素的属性：属性描述lass为html元素定义一个或多个类名（classname）(类名从样式文件引入)id定义元素的唯一idstyle规定元素的行内样式（inline style）title描述了元素的额外信息 (作为工具条使用)HTML 标题标题（Heading）是通过 - 标签进行定义的。 定义最大的标题。 定义最小的标题。 这是一个标题。 这是一个标题。 这是一个标题。 标题很重要请确保将 HTML 标题 标签只用于标题。不要仅仅是为了生成粗体或大号的文本而使用标题。搜索引擎使用标题为您的网页的结构和内容编制索引。因为用户可以通过标题来快速浏览您的网页，所以用标题来呈现文档结构是很重要的。应该将 h1 用作主标题（最重要的），其后是 h2（次重要的），再其次是 h3，以此类推。HTML 水平线 标签在 HTML 页面中创建水平线。hr 元素可用于分隔内容。 这是一个段落。 这是一个段落。 这是一个段落。 HTML 注释可以将注释插入 HTML 代码中，这样可以提高其可读性，使代码更易被人理解。浏览器会忽略注释，也不会显示它们。注释写法如下: HTML 标签参考标签描述 定义 HTML 文档 定义文档的主体 - 定义 HTML 标题 定义水平线 定义注释HTML 文本格式化加粗文本斜体文本这是 下标 和 上标加粗文本 斜体文本 这是 下标 和 上标HTML 格式化标签HTML 使用标签 ("bold") 与 ("italic") 对输出的文本进行格式, 如：粗体 or 斜体这些HTML标签被称为格式化标签（请查看底部完整标签参考）。通常标签 替换加粗标签 来使用, 替换 标签使用。然而，这些标签的含义是不同的： 与 定义粗体或斜体文本。 或者 意味着你要呈现的文本是重要的，所以要突出显示。现今所有主要浏览器都能渲染各种效果的字体。不过，未来浏览器可能会支持更好的渲染效果。HTML 文本格式化标签参考标签描述定义粗体定义着重定义斜体定义小号字体定义粗体定义下标定义上标 定义插入（引用） 定义删除线HTML "计算机输出" 标签标签描述定义代码定义键盘 定义计算机代码样本定义变量 定义预格式文本HTML 引文, 引用, 及标签定义标签描述定义缩写 定义地址 定义文字方向 定义长的引用定义短的引用语定义引用、引证 定义一个项目HTML HTML 元素 元素包含了所有的头部标签元素。在 元素中你可以插入脚本（scripts）, 样式文件（CSS），及各种meta信息。可以添加在头部区域的元素标签为: , 文档中的块级元素 文档中的内联元素无序列表 项目 项目 有序列表 第一项 第二项 定义列表 项目 1 描述项目 1 项目 2 描述项目 2 表格（Tables） 表格标题 表格标题 表格数据 表格数据 框架（Iframe） 表单（Forms） 苹果 香蕉 樱桃 实体（Entities）< 等同于 < > 等同于 > © 等同于 ©总结恭喜，你已经完成了 HTML 的学习！HTML 是一种在 Web 上使用的通用标记语言。HTML 允许你格式化文本，添加图片，创建链接、输入表单、框架和表格等等，并可将之存为文本文件，浏览器即可读取和显示。HTML 的关键是标签，其作用是指示将出现的内容。现在，你已学完HTML，接下来该学习什么呢？学习 CSSCSS被用来同时控制多重网页的样式和布局。通过使用 CSS，所有的格式化均可从 HTML 中剥离出来，并存储于一个独立的文件中。学习 JavaScriptJavaScript 可以让你的网页更加生动。如果你只想展示内容，静态网站是很好的展示形象，如果你想与用户进行交换或者让网页更加生动那就需要使用到Javascript。JavaScript是互联网上最流行的脚本语言，目前所有主流浏览器都支持Javascript。你已看完本篇文章。有兴趣可以再学习PHP。
前言此教程转载自X64论坛我自己的帖子。准备一台搭载Windows7以上64位系统的电脑或Windows server 2007以上的服务器开始在github下载好exe文件然后打开它这里嫌慢的先用这个老版的3.5.3https://pan.huang1111.cn/s/kzN9tB打开它记录下来管理密码打开 127.0.0.1:5212使用记录的密码来登录部署进了吧？接下来我们进到后台！进了后台，硕大的提示来了：不用管他，按忽略到了这，我解释下主标题确定名称的，如huang1111网盘副标题应用名称。比如huang1111网盘的是个人存储站点描述随便写，没啥卵用站点url没什么需要填你的IP这个地方发件人名随便填发件人邮箱填邮箱SMTP 服务器见下文SMTP 端口默认25无需修改发件服务器地址端口号SMTP 用户名发信邮箱用户名，一般与邮箱地址相同SMTP 密码发信邮箱密码（授权码）阿里云邮箱（mail.aliyun.com）: SMTP服务器地址:smtp.aliyun.com（SSL加密端口：465；非加密端口：25） 谷歌邮箱(google.com)： SMTP服务器地址:smtp.gmail.com（SSL启用端口：587） 新浪邮箱（sina.com）: SMTP服务器地址:smtp.sina.com.cn（端口：25） Tom邮箱（top.com）: SMTP服务器地址:smtp.tom.com（端口：25） 网易邮箱（163.com）: SMTP服务器地址:smtp.163.com（端口：25） 126邮箱: SMTP服务器地址:smtp.126.com（端口：25） 雅虎邮箱（yahoo.com）: SMTP服务器地址:smtp.mail.yahoo.com 雅虎中国（yahoo.com.cn）: SMTP服务器地址:smtp.mail.yahoo.com.cn（端口：587） 雅虎邮箱SMTP的SSL不启用端口为25，SMTP的SSL启用端口为465。 Foxmail邮箱（foxmail.com）： SMTP服务器地址:SMTP.foxmail.com（端口：25） QQ邮箱（mail.qq.com） SMTP服务器地址：smtp.qq.com（端口：25） SMTP服务器需要身份验证（授权码） 搜狐邮箱（sohu.com）: SMTP服务器地址:smtp.sohu.com（端口：25） HotMail邮箱（hotmail.com）： SMTP服务器地址：smtp.live.com（端口：587 移动139邮箱: SMTP服务器地址：SMTP.139.com(端口：25) 中华网邮箱（china.com）: SMTP服务器地址:smtp.china.com（端口：25）到这，你的网盘已配置完毕。如需投入生产力，请用服务器部署。
前言本文所指Ubuntu为Ubuntu Server 22.04 LTS。文章同步在博客园更新前提条件服务器需要安装宝塔，可以看我的这篇文章;新手站长建站教程-宝塔安装正文检查系统首先，检查系统内核参数。使用arch命令来查看。输出x86_64代表amd64；aarch64代表arm64。看的出来，我的机子是amd64的。创建网站创建网站，并为网站申请SSL证书（我这里是IP地址，不再演示）设置反向代理开放端口执行命令打开宝塔命令行，依次执行以下命令：（需要改为自己的路径）mkdir /www/wwwroot/192.168.1.5/cloudreve # 新建一个文件夹用作存放程序（可能要带sudo）cd /www/wwwroot/192.168.1.5/cloudreve # 进入刚刚创建的文件夹wget https://github.com/cloudreve/Cloudreve/releases/download/3.8.3/cloudreve_3.8.3_linux_amd64.tar.gz # 这一步链接换成github上的对应链接tar -zxvf cloudreve_3.8.3_linux_amd64.tar.gz # 解压程序文件chmod +x ./cloudreve # 给与运行权限./cloudreve # 启动程序访问测试已经可以正常使用。[Info] 2024-08-05 07:40:48 Admin user name: admin@cloudreve.org [Info] 2024-08-05 07:40:48 Admin password: ******以上为第一次登录信息。进程守护想要无忧使用，最好是加个进程守护，不然每次都要去后台打开。命令行按ctrl+c，停止进程后关闭即可。宝塔软件商店搜索Supervisor管理器即可这样填即可，添加成功后，检查进程状态是否为开启的绿三角，不是，重启服务器，再回来看，如果还不是就要检查配置是否填写正确。
准备工作你需要：一台服务器，建议大厂的，这里我用虚拟机代替；ssh软件（PowerShell也可）（可选）耐心正文我这里使用的是Ubuntu Server 24.04 LTS使用ssh连接上你的服务器。访问bt.cn，获取安装脚本的代码比如我这里是wget -O install.sh https://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh ed8484bec中间可能会提示输入密码，输入即可。这里需要填写y安装时间随服务器的性能可能会变化，请耐心等待。提示Congratulations! Installed successfully!代表安装成功。请记住下面的登录信息以便登录。
文件目录：./upload ./upload.php ./form.html1.创建一个文件上传表单代码如下 haihaihai 文件名： 将文件命名为form.html。 标签的 enctype 属性规定了在提交表单时要使用哪种内容类型。在表单需要二进制数据时，比如文件内容，请使用 "multipart/form-data"。 标签的 type="file" 属性规定了应该把输入作为文件来处理。举例来说，当在浏览器中预览时，会看到输入框旁边有一个浏览按钮。创建upload.php<?php if ($_FILES["file"]["error"] > 0) { echo "错误：" . $_FILES["file"]["error"] . " "; } else { echo "上传文件名: " . $_FILES["file"]["name"] . " "; echo "文件类型: " . $_FILES["file"]["type"] . " "; echo "文件大小: " . ($_FILES["file"]["size"] / 1024) . " kB "; echo "文件临时存储的位置: " . $_FILES["file"]["tmp_name"]; } ?>我们可以给表单添加限制：<?php $allowedExts = array("gif", "jpeg", "jpg", "png"); $temp = explode(".", $_FILES["file"]["name"]); $extension = end($temp); // 获取文件后缀名 if ((($_FILES["file"]["type"] == "image/gif") || ($_FILES["file"]["type"] == "image/jpeg") || ($_FILES["file"]["type"] == "image/jpg") || ($_FILES["file"]["type"] == "image/pjpeg") || ($_FILES["file"]["type"] == "image/x-png") || ($_FILES["file"]["type"] == "image/png")) && ($_FILES["file"]["size"] < 204800) // 小于 200 kb && in_array($extension, $allowedExts)) { if ($_FILES["file"]["error"] > 0) { echo "错误：: " . $_FILES["file"]["error"] . " "; } else { echo "上传文件名: " . $_FILES["file"]["name"] . " "; echo "文件类型: " . $_FILES["file"]["type"] . " "; echo "文件大小: " . ($_FILES["file"]["size"] / 1024) . " kB "; echo "文件临时存储的位置: " . $_FILES["file"]["tmp_name"]; } } else { echo "文件超过限制"; } ?>上面的文件在服务器的 PHP 临时文件夹中创建了一个被上传文件的临时副本。这个临时的副本文件会在脚本结束时消失。要保存被上传的文件，我们需要把它拷贝到另外的位置：<?php $allowedExts = array("gif", "jpeg", "jpg", "png"); $temp = explode(".", $_FILES["file"]["name"]); echo $_FILES["file"]["size"]; $extension = end($temp); // 获取文件后缀名 if ((($_FILES["file"]["type"] == "image/gif") || ($_FILES["file"]["type"] == "image/jpeg") || ($_FILES["file"]["type"] == "image/jpg") || ($_FILES["file"]["type"] == "image/pjpeg") || ($_FILES["file"]["type"] == "image/x-png") || ($_FILES["file"]["type"] == "image/png")) && ($_FILES["file"]["size"] < 204800) // 小于 200 kb && in_array($extension, $allowedExts)) { if ($_FILES["file"]["error"] > 0) { echo "错误：: " . $_FILES["file"]["error"] . " "; } else { echo "上传文件名: " . $_FILES["file"]["name"] . " "; echo "文件类型: " . $_FILES["file"]["type"] . " "; echo "文件大小: " . ($_FILES["file"]["size"] / 1024) . " kB "; echo "文件临时存储的位置: " . $_FILES["file"]["tmp_name"] . " "; // 判断当期目录下的 upload 目录是否存在该文件 // 如果没有 upload 目录，你需要创建它，upload 目录权限为 777 if (file_exists("upload/" . $_FILES["file"]["name"])) { echo $_FILES["file"]["name"] . " 文件已经存在。 "; } else { // 如果 upload 目录不存在该文件则将文件上传到 upload 目录下 move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $_FILES["file"]["name"]); echo "文件存储在: " . "upload/" . $_FILES["file"]["name"]; } } } else { echo "文件超过限制"; } ?>此教程完结。