唐发发博客


  • Home

  • Archives

布局

Posted on 2019-03-17

布局

左右布局

HTML代码

<div class="container">
    <div class="left">left</div>
    <div class="right">right</div>
</div>

CSS代码

.left {
    width: 100px;
    height: 150px;
    background-color: #FFB5BF;
}
.right {
    height: 150px;
    background-color: #94E8FF;
}

1. 设置 display 为 inline-block

.container {
    font-size: 0;    /* 消除间距 */
}
.left, .right {
    display: inline-block;
}
.right {
    width: calc(100% - 100px);   /* 计算宽度,运算符号左右一定要有空格 */
}

2. 使用 float

.left {
    float: left;
}
.right {
    margin-left: 100px;   /* 为 .left 留出空间 */
}
.container {
    overflow: hidden;    /* 别忘了清除浮动 */
}
我们可以还设置 .left、.right 均左浮动,这时,它们便会紧贴着排列在一行。因为 .right 是浮动的,所以需要计算宽度。
.left {
    float: left;
}
.right {
    float: left;
    width: calc(100% - 100px);
}
.container {
    overflow: hidden;
}

左中右布局

HTML代码

<div class="container">
    <div class="left">left</div>
    <div class="center">center</div>       
    <div class="right">right</div>
</div>

CSS代码

body {
    min-width: 630px;
}
.center {
    width: 100%;
    height: 150px;
    background-color: #94E8FF;
}
.left {
    width: 100px;
    height: 150px;
    background-color: #FFB5BF;
}
.right {
    width: 200px;
    height: 150px;
    background-color: #8990D5;
}

结构说明:左右两部分宽度固定,中间的部分填充剩余所有宽度。
常用场景:最左边摆放一张图片,中间摆放说明性文字,右边摆放相关操作的小图标。
之前的做法虽然有实现但是不完美。思路如下(简单描述为左中结构):
首先考虑中间的要拉伸铺满剩下的宽度,必须宽度设置成百分比100%,用box-sizing设置为border-box,然后配合padding,给左右留固定的宽度,左右的内容放到padding区域与其重叠,使用float浮动是不能重叠的,所以一定要有一个是绝对定位,全部都使用绝对定位是没有问题的,但是绝对定位有个特性,定位的元素从文档流中删除,不占用空间,导致父元素不能自动适应高度,如果全部都绝对定位,父元素不显示指定高度,那么高度会为0,导致后面的元素和要排列的左中右结构重叠了。浮动元素本来也是脱离了文档流,不占用空间,但是父元素设置成内联块之后,它能占用空间(不理解内联块的性质)。于是就用绝对定位和浮动来混合实现,多数情况下,左边的图片宽度和高度都固定,于是就把左边的内容设置成绝对定位,中间的内容设置成浮动了,父元素再设置个最小高度为左边内容的高度,规避高度适应问题。
上述实现如果遇到左边和中间的内容高度都不确定,那就不好使了。今天终于想出另一种方案,思路如下:
全部都用浮动,关键要解决中间元素宽度为100%之后,左中右总宽度超过父元素宽度,导致换行的问题。借助外边距margin设置为负值解决了。中间内容把padding-left设置成左右部分宽度的和,把margin-left设置成padding-left对应的负数,就缩减了真实宽度了,恰好合适。

.container{
    display:inline-block;
    width:100%;
}
.left{
    float: left;
    width:100px;
}
.right{
    float: left;
    width:50px;
}
.center{
    float: left;
    box-sizing:border-box;
    width: 100%;
    padding-left: 150px;
    margin-left: -150px;
}

水平居中

行内元素居中

.div1{
    text-align:center;
}
<div class="div1">Hello world</div>

块状元素居中

.div1{
    width:200px;
    border:1px solid red;
    margin:0 auto;
}
<div class="div1">Hello world</div>

垂直居中

.wrap h2{
    margin:0;
    height:100px;
    line-height:100px;
    background:#ccc;
}

<div class="wrap">
    <h2>Hello world</h2>
</div>

常用的HTML标签

Posted on 2019-01-18

基本

<html>…</html>                  定义 HTML 文档

<head>…</head>               文档的信息

<meta>                         HTML文档的元信息

<title>…</title>                文档的标题

<link>                        文档与外部资源的关系

<style>…</style>               文档的样式信息

<body>…</body>               可见的页面内容

<!--…-->                     注释

文本

<h1>...</h1>                   标题字大小(h1~h6)

<b>...</b>                   粗体字    

<strong>...</strong>           粗体字(强调) 

<i>...</i>                    斜体字 

<em>...</em>                  斜体字(强调)

<center>…</center>           居中文本

<ul>…</ul>                     无序列表 

<ol>…</ol>                     有序列表

<li>…</li>                    列表项目

<a href=”…”>…</a>            超链接

<font>                        定义文本字体尺寸、颜色、大小

<sub>                         下标

<sup>                         上标

<br>                         换行

<p>                           段落

图形

<img src=’”…”>              定义图像

<hr>                           水平线

<del>                          加删除线

表格

<table>…</table>               定义表格

<th>…</th>                    定义表格中的表头单元格

<tr>…</tr>                     定义表格中的行

<td>…</td>                   定义表格中的单元

<caption></caption>            为表格添加标题

<rowspan></rowspan>            跨行

<colspan></colspan>            跨列

表单

<form></form>                表单

<input>                        文本框

<textarea></textarea>        文本域

<label></label>                绑定表单元素

<select></select>            下拉列表

<button></button>            按钮

Http简要

Posted on 2019-01-06

HTTP简要介绍

HTTP英文全称:HyperText Transfer Protocol,中文全称:超文本传输协议,HTTP是一个客户端终端(用户)和服务器端(网站)请求和应答的标准(TCP)。通过使用网页浏览器、网络爬虫或者其它的工具,客户端发起一个HTTP请求到服务器上指定端口(默认端口为80)。

请求信息

请求信息主要包括4个部分,

1.请求行,以一个方法符号开头,后面跟着请求URI和协议的版本,例如GET /Test HTTP/1.1。
2.请求头,(例如Accept-Language: en),在HTTP/1.1协议中,所有的请求头,除Host外,都是可选的。
3.空行(区别2和4之间的标识)
4.其他消息体

下面介绍下使用chrome浏览器查看请求信息的步骤。

1.F12打开开发者工具,或者右键点击检查。
2.点击Network。
3.点击任一文件资源请求或者接口请求。
4.在Headers中查看Request Header, 点击右侧view source,即可查看请求信息。

响应信息

1.协议版本状态以及描述,它表示通信所用的协议以及版本,返回服务器处理了客户端发出的请求,例如HTTP/1.1 200 OK代表通信所用的协议是HTTP1.1服务器已经成功的处理了客户端发出的请求(200表示成功)。
2.响应头,也和请求头一样包含许多有用的信息,例如服务器类型、日期时间、内容类型和长度等。
3.空行(区别2和4之间的标识)
4.响应正文,服务器返回的HTML页面

响应返回的状态码,通常分为4类:

1. 1XX-信息类(Information),表示收到Web浏览器请求,正在进一步的处理中
2. 2XX-成功类(Successful),表示用户请求被正确接收,理解和处理例如:200 OK
3. 3XX-重定向类(Redirection),表示请求没有成功,客户必须采取进一步的动作。
4. 4XX-客户端错误(Client Error),表示客户端提交的请求有错误 例如:404 NOT Found,意味着请求中所引用的文档不存在。
5. 5XX-服务器错误(Server Error)表示服务器不能完成对请求的处理:如 500

下面介绍下使用chrome浏览器查看响应信息的步骤。

1.F12打开开发者工具,或者右键点击检查。
2.点击Network。
3.点击任一文件资源请求或者接口请求。
4.在Headers中查看Response Header, 点击右侧view source,即可查看请求信息。

请求方法

HTTP/1.1协议中共定义了八种方法(也叫“动作”)来以不同方式操作指定的资源

1.GET,向指定的资源发出“显示”请求。使用GET方法应该只用在读取数据,而不应当被用于产生“副作用”的操作中.
2.HEAD,与GET方法一样,都是向服务器发出指定资源的请求。只不过服务器将不传回资源的本文部分。它的好处在于,使用这个方法可以在不必传输全部内容的情况下,就可以获取其中“关于该资源的信息”(元信息或称元数据)。
3.POST,向指定资源提交数据,请求服务器进行处理(例如提交表单或者上传文件)。数据被包含在请求本文中。这个请求可能会创建新的资源或修改现有资源,或二者皆有。
4.PUT,向指定资源位置上传其最新内容。
5.DELETE,请求服务器删除Request-URI所标识的资源。
6.TRACE,回显服务器收到的请求,主要用于测试或诊断。
7.OPTIONS,这个方法可使服务器传回该资源所支持的所有HTTP请求方法。用'*'来代替资源名称,向Web服务器发送OPTIONS请求,可以测试服务器功能是否正常运作。
8.CONNECT,HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。通常用于SSL加密服务器的链接(经由非加密的HTTP代理服务器)。

curl的使用

在Linux中curl是一个利用URL规则在命令行下工作的文件传输工具,可以说是一款很强大的http命令行工具。它支持文件的上传和下载,是综合传输工具,但按传统,习惯称url为下载工具。

语法:# curl [option] [url]

常见参数

-A/--user-agent <string>              设置用户代理发送给服务器
-b/--cookie <name=string/file>    cookie字符串或文件读取位置
-c/--cookie-jar <file>                    操作结束后把cookie写入到这个文件中
-C/--continue-at <offset>            断点续转
-D/--dump-header <file>              把header信息写入到该文件中
-e/--referer                                  来源网址
-f/--fail                                          连接失败时不显示http错误
-o/--output                                  把输出写到该文件中
-O/--remote-name                      把输出写到该文件中,保留远程文件的文件名
-r/--range <range>                      检索来自HTTP/1.1或FTP服务器字节范围
-s/--silent                                    静音模式。不输出任何东西
-T/--upload-file <file>                  上传文件
-u/--user <user[:password]>      设置服务器的用户和密码
-w/--write-out [format]                什么输出完成后
-x/--proxy <host[:port]>              在给定的端口上使用HTTP代理
-#/--progress-bar                        进度条显示当前的传送状态

例子:

# curl http://www.linux.com
执行后,www.linux.com 的html就会显示在屏幕上了,curl还有许多的操作,详细的可以google查看。

git入门

Posted on 2018-12-26

每个程序员,在自己本地开发,都应该使用git来管理自己的项目,下面我就介绍下管理自己本地项目常用的3个项目。

  • git init
  • git add
  • git commit

git init –> 初始化当前项目,创建本地git文件,生成本地项目仓库。

git add –> 将当前项目文件修改的内容添加到缓存区,后面接修改的文件,git add .代表将所有文件都添加到缓存区。

git commit –> 将缓存区的内容添加到本地仓库中,然后保存起来,便于管理。

4个简单命令行操作

Posted on 2018-12-26

操作Linux命令是每个程序员必须掌握的技能,今天我们就来学习4个简单的Linux命令

ls

ls命令用来显示目标列表,在Linux中是使用率较高的命令。ls命令的输出信息可以进行彩色加亮显示,以分区不同类型的文件。ls

cat

cat命令连接文件并打印到标准输出设备上,cat经常用来显示文件的内容。cat

mv

mv命令用来对文件或目录重新命名,或者将文件从一个目录移到另一个目录中。source表示源文件或目录,target表示目标文件或目录。如果将一个文件移到一个已经存在的目标文件中,则目标文件的内容将被覆盖。mv

touch

一是用于把已存在文件的时间标签更新为系统当前的时间(默认方式),它们的数据将原封不动地保留下来;二是用来创建新的空文件。touch

介绍一个查询命令的网站explainshell,输入命令即可寻该命令的在Linux中执行的作用,而且支持多个命令行同时查询,当然也可以用上面国内的网站linuxde,也会详细阐述各个命令的使用方法,以及参数,英文不好的同学可以食用!

第二篇博客

Posted on 2018-12-26
  • 初级前端
  • 中级前端
  • 高级前端
  • 前端架构

开博大吉

Posted on 2018-12-26

这是第一篇博客


  • 唐奇
  • 成都华阳
  • 前端开发

Hello World

Posted on 2018-12-26

Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.

Quick Start

Create a new post

1
$ hexo new "My New Post"

More info: Writing

Run server

1
$ hexo server

More info: Server

Generate static files

1
$ hexo generate

More info: Generating

Deploy to remote sites

1
$ hexo deploy

More info: Deployment

John Doe

8 posts
© 2019 John Doe
Powered by Hexo
|
Theme — NexT.Muse v5.1.4