我的Blog搭建之旅5——HTML与CSS

我的Blog搭建之旅5——HTML与CSS

HTML组件

< input >

用于与用户交互,获取用户的输入信息,支持多种类型

http://www.runoob.com/tags/tag-input.html

  • 通过给input附上id,然后使用如下语句获取用户输入的数据。用value获取输入框用户输入的内容
let account = document.getElementById("account").value;

###< 表格 >

标签描述
<table>定义表格
<th>定义表格的表头
<tr>定义表格的行
<td>定义表格单元
<caption>定义表格标题
<colgroup>定义表格列的组
<col>定义用于表格列的属性
<thead>定义表格的页眉
<tbody>定义表格的主体
<tfoot>定义表格的页脚

<thead> 元素应该与 <tbody> 和 <tfoot> 元素结合起来使用,用来规定表格的各个部分(表头、主体、页脚)。

通过使用这些元素,使浏览器有能力支持独立于表格表头和表格页脚的表格主体滚动。当包含多个页面的长的表格被打印时,表格的表头和页脚可被打印在包含表格数据的每张页面上。

普通的表格只需要使用 <th> <tr> <td>即可

< meta >

  • META元素通常用于指定网页的描述,关键词,文件的最后修改时间,作者及其他元数据。元数据可以被使用浏览器(如何显示内容或重新加载页面),搜索引擎(关键词),或其他 Web 服务调用。

  • <meta> 标签通常位于 <head> 区域内。

  • 属性列表:

    属性描述
    charsetcharacter_set(字符集)定义文档的字符编码。
    <meta charset=“utf-8”>
    contenttext定义与 http-equiv 或 name 属性相关的元信息。
    其实说白了就是name和http-equiv属性的内容。
    http-equivcontent-type
    default-style
    refresh
    把 content 属性关联到 HTTP 头部。
    nameapplication-name
    author
    description
    generatorkeywords
    viewport
    把 content 属性关联到一个名称。
    viewport:一个新的功能,为了移动开发而设计的,细节可参考http://www.runoob.com/w3cnote/viewport-deep-understanding.html

< link >

属性描述
hrefURL定义被链接文档的位置。
hreflanglanguage_code定义被链接文档中文本的语言。
mediamedia_query规定被链接文档将显示在什么设备上。
relalternate
archives
author
bookmark
external
first
help :帮助文档
icon:导入表示该文档的图标。
last
license
next
nofollow
noreferrer
pingback
prefetch
prev
search
sidebar
stylesheet:要导入的样式表的 URL。
tag
up
必需。定义当前文档与被链接文档之间的关系。
sizesHeightxWidthany定义了链接属性大小,只对属性 rel=“icon” 起作用。
typeMIME_type规定被链接文档的 MIME 类型。

CSS样式

  • 总所周知的是CSS表示层叠样式表 (Cascading Style Sheets),用于定义如何显示html组件。本来的html组件太单调了,我们使用CSS来改变他们的外观。

语法

img

  • 由 选择器+ 声明 + 值 组成,用{ }括起来声明,用;分割,最简单的例子如下:
p
{
color:red;
text-align:center;
}
  • 注释使用/* */
  • ⚠️:与shell一样,属性和值之间不要留有空格!!
< 选择器 >
  • id选择器:使用#后接id来表示id选择器,与html中的id对应。每个id是特定的。只能用于一个组件。
<head>
<style>
#para1
{
	text-align:center;
	color:red;
} 
</style>
</head>

<body>
<p id="para1">Hello World!</p>
<p>这个段落不受该样式的影响。</p>
</body>
  • class选择器:使用.后接class的名称来跟html中的class对应。class可以在多个组件中使用。同时可以在.之前使用组件名称来使特定组件的某个类产生变化
/*只有p的center类受影响*/
<head>
<style>
p.center
{
	text-align:center;
}
</style>
</head>

<body>
<h1 class="center">这个标题不受影响</h1>
<p class="center">这个段落居中对齐。</p> 
</body>
/*全部center类都受影响*/
<head>
<style>
.center
{
	text-align:center;
}
</style>
</head>

<body>
<h1 class="center">标题居中</h1>
<p class="center">段落居中。</p> 
</body>
  • 分组选择器:就是一样的声明的选择器可以写到一起,用,分隔
  • 嵌套选择器:
    • .marked p{ }: 为所有 class=“marked” 元素内的 p 元素指定一个样式。
    • p.marked{ }: 为所有 class=“marked”p 元素指定一个样式。
< CSS语句的位置 >
  • 外部的引用:
<head>
<link rel="stylesheet" type="text/css" href="mystyle.css">
</head>
  • 内部的声明:
<style>
hr {color:sienna;}
p {margin-left:20px;}
body {background-image:url("images/back40.gif");}
</style>
  • 内联方式:
<p style="color:sienna;margin-left:20px">这是一个段落。</p>
  • 优先级:内联样式)Inline style > (内部样式)Internal style sheet >(外部样式)External style sheet > 浏览器默认样式

CSS属性

< 背景 >
Property描述说明
background简写属性,作用是将背景属性设置在一个声明中。把下面的都写到一起比较方便
background-attachment背景图像是否固定或者随着页面的其余部分滚动。- scroll:随页面的其余部分滚动,这是默认选项
- fixed:固定的
- inherit:从父元素继承
background-color设置元素的背景颜色。默认为transparent,透明的
background-image把图像设置为背景。url(‘路径名’);
可以使用多个背景图片:http://www.runoob.com/try/try.php?filename=trycss3_background_multiple
background-position设置背景图像的起始位置。- left/right/center top/center.bottom:位置
- x% y% 使用百分比
- xpos ypos 使用像素值
background-repeat设置背景图像是否及如何重复。repeat/repeat-x/repeat-y
  • 关于颜色:CSS的颜色支持三种描述
    • 十六进制 - 如:"#ff0000"
    • RGB - 如:“rgb(255,0,0)”
    • 颜色名称 - 如:“red”
< 文字 >
属性描述说明
color设置文本颜色
direction设置文本方向。ltr/rtl
letter-spacing设置字符间距3px/-2px 默认为0
line-height设置行高倍数/百分比/像素值
text-align对齐元素中的文本left/right/center/justify
justify的意思是随着窗口的变化而变换每一行的字数
text-decoration向文本添加修饰underline/overline/line-through/blink
text-indent缩进元素中文本的首行像素值/百分比
text-shadow设置文本阴影
text-transform控制元素中的字母
  • 太多了不抄了。。。。以后只记我看不懂的吧

  • 字体:

    • font-family 属性应该设置几个字体名称作为一种"后备"机制,如果浏览器不支持第一种字体,他将尝试下一种字体。如果字体系列的名称超过一个字,它必须用引号,如Font Family:“宋体”。
    • font-style:正常字体/斜体
  • 链接:可以设计不同的点击或者移动到连接上时的变化,还有高级变化:http://www.runoob.com/try/try.php?filename=trycss_link_advanced

  • 表格:设置table,td,th,caption之类的,http://www.runoob.com/try/try.php?filename=trycss_table_fancy

  • overflow:visible/hidden/auto/acroll

  • 边框,轮廓

  • 外边距,内边距:一到四个值都行,像素或者百分比都可以

  • visibility:可见性;display:none/inline/block——块级元素与内敛元素

  • 使用":"表示他使用了“伪类”或者“伪元素”

组件的摆放

之所以单独领出来写是因为上次就没搞懂这个位置是如何确定的,就比较懵。这次认真的看一下原理。

####< Position >

  • static:无特殊定位,表示正常。就按照正常的block和inline形式摆放,也就是默认值。
  • relative:表示相对于static 的定位,通常使用像素值表示偏移
h2.pos_right
{
	position:relative;
	left:20px;
}
  • fixed

    • 表示相对于浏览器窗口固定的位置,就算窗口滑动他也不动。
    • 不占据组件的空间,可以重叠。
  • absolute

    • 绝对定位的元素的位置相对于最近的已定位父元素,如果元素没有已定位的父元素,那么它的位置相对于<html>。他是相对于某个组件的,窗口滑动的话他会动的。
    • 但是也不占据组件的空间,会重叠。
  • sticky:粘性定位,神奇的定位。

    • 粘性定位的元素是依赖于用户的滚动,在 position:relativeposition:fixed 定位之间切换。

    • 它的行为就像 position:relative; 而当页面滚动超出目标区域时,它的表现就像 position:fixed;,它会固定在目标位置。

上面有说到 重叠 ,重叠的顺序当然也是可以指定的

img
{
    position:absolute;
    left:0px;
    top:0px;
    z-index:-1; /* 数字越大越是在上面 */
}
< Dimension >
  • heightwidth:不仅可以控制图片,而且可以控制文本。
  • max-heightmax-width:设置元素的最大高度和宽度,可以与overflow属性配合使用,或者使用背景颜色就可以看出来。
  • min-height,min-width:设置元素的最小高度和宽度,主要可以用来占位吧。
< 盒子模型 >
  • div:盒子模型是由外边距、边框、内边距、内容组成的,前三者默认都是没有的。

    CSS box-model

    最终元素的总宽度计算公式是这样的:

    总元素的宽度=宽度+左填充+右填充+左边框+右边框+左边距+右边距

    元素的总高度最终计算公式是这样的:

    总元素的高度=高度+顶部填充+底部填充+上边框+下边框+上边距+下边距

  • 简写属性:margin和padding可以有1~4个值:

    1. 全部边距
    2. 先上下,后左右
    3. 上、左右、下
    4. 上、右、下、左(顺时针记录)

    同时也可以使用 margin/padding - top/right/bottom/left之类的属性

< dispaly:flex >

看项目代码的时候突然看到一句

display:flex;

记得display里面没有这个选项啊,后来知道是一种布局的写法,详细语法参考这个吧:http://www.ruanyifeng.com/blog/2015/07/flex-grammar.html?utm_source=tuicool

CSS实例

BootStrap4——套模板大法好

安装与使用

不管是啥反正都可能用上,加上去吧

<!-- 新 Bootstrap4 核心 CSS 文件 -->
<link rel="stylesheet" href="https://cdn.staticfile.org/twitter-bootstrap/4.1.0/css/bootstrap.min.css">
 
<!-- jQuery文件。务必在bootstrap.min.js 之前引入 -->
<script src="https://cdn.staticfile.org/jquery/3.2.1/jquery.min.js"></script>
 
<!-- popper.min.js 用于弹窗、提示、下拉菜单 -->
<script src="https://cdn.staticfile.org/popper.js/1.12.5/umd/popper.min.js"></script>
 
<!-- 最新的 Bootstrap4 核心 JavaScript 文件 -->
<script src="https://cdn.staticfile.org/twitter-bootstrap/4.1.0/js/bootstrap.min.js"></script>

<!-- 为了让 Bootstrap 开发的网站对移动设备友好,确保适当的绘制和触屏缩放,需要在网页的 head 之中添加 viewport meta 标签 -->
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

Bootstrap的规范布局

  • 响应式的网格系统:

    image-20190219110601789

  • 规则:

    • 网格每一行需要放在设置了 .container (固定宽度) 或 .container-fluid (全屏宽度) 类的容器中,这样就可以自动设置一些外边距与内边距。
    • 使用行来创建水平的列组。
    • 内容需要放置在列中,并且只有列可以是行的直接子节点。
    • 预定义的类如 .row.col-sm-4 可用于快速制作网格布局。
    • 列通过填充创建列内容之间的间隙。 这个间隙是通过 .rows 类上的负边距设置第一行和最后一列的偏移。
    • 网格列是通过跨越指定的 12 个列来创建。 例如,设置三个相等的列,需要使用用三个**.col-sm-4** 来设置。
    • Bootstrap 3 和 Bootstrap 4 最大的区别在于 Bootstrap 4 现在使用 flexbox(弹性盒子) 而不是浮动。 Flexbox 的一大优势是,没有指定宽度的网格列将自动设置为等宽与等高列
  • 针对不同屏幕大小的响应式设计:Bootstrap的网格布局是“响应式”的,之所以是响应式,就是针对不同的屏幕宽度的变化,可以设计不同的布局效果。这样子就可以很好的适应手机、平板、电脑设备。

    /*默认的话就是等比例排列*/
    <div class="row">
      <div class="col">.col</div>
      <div class="col">.col</div>
      <div class="col">.col</div>
    </div>
    /* 格式为"col-*-*",第一个星号 (*) 表示响应的设备: sm, md, lg 或 xl, 第二个星号 (*) 表示一个数字, 同一行的数字相加为 12。在移动设备上(屏幕宽最小)就是堆叠排列 */
    <div class="row">
      <div class="col">.col</div>
      <div class="col">.col</div>
      <div class="col">.col</div>
    </div>
    /* 也可以使用 “offset-*-*” 的格式来确定偏移量 */
    

Bootstrap的功能

首先我们需要知道的事,Bootstrap是一个模板,他已经为许多class写好了不错的CSS格式,所以我们需要做的就是按照他提供的格式,在需要的地方加入类的定义即可。

  • 文字格式
  • 链接格式
  • 对表格也做了美化
  • 对图片的操作
  • 提示框感觉很fasion
  • 一堆还不错的按钮
  • 大家好我是只是为了漂亮用的“徽章”
  • 可以做进度条
  • 可以分页
  • 一堆列表项
  • 各种卡片
  • 下拉菜单也有单独的类
  • 可以折叠
  • 导航栏也很方便,还可以折叠
  • 各种输入框也有很好的样式
  • 轮播
  • 可以控制弹出框的形状
  • 滚动监听

bootstrap的东西很多,我们需要根据应用积累,文档列举在下面了:

https://getbootstrap.com/docs/4.0/getting-started/introduction/

  • 折叠导航栏:要创建折叠导航栏,可以在按钮上添加 class=“navbar-toggler”, data-toggle=“collapse”data-target="#thetarget" 类。然后在设置了 class=“collapse navbar-collapse” 类的 div 上包裹导航内容(链接), div 元素上的 id 匹配按钮 data-target 的上指定的 id:
<nav class="navbar navbar-expand-md bg-dark navbar-dark">
  <!-- 这是折叠的声明 -->
  <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#collapsibleNavbar">
    <!-- 这是那个图标吧 -->
    <span class="navbar-toggler-icon"></span>
  </button>
 
  <!-- 导航栏的id要与data-target对应上 -->
  <div class="collapse navbar-collapse" id="collapsibleNavbar">
   <!-- 导航栏的内容 -->
</div> 
</nav>

Font Awesome

本来以为是个什么特别厉害的东西,最后发现其实。。是一个图标的库,所以这里的除了链接什么也没有

http://www.runoob.com/font-awesome/fontawesome-tutorial.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值