百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

【干货】一文详解html和css,前端开发需要哪些技术?

myzbx 2025-01-15 15:57 13 浏览

网站开发简介

  • 网站开发包括前端和后端,后端是服务器,用来存储数据和设计业务逻辑,前端用来展示网站效果。
  • 网站是多个网页的集合,网页是纯文本格式的文件,浏览器就是将这些纯文本格式的文件渲染成网页。

HTML简介

HTML是超文本标记语言HyperText Markup Language),是一种用于创建网页的标准标记语言,HTML由一个个标签组成,文件的后缀名是html或htm,一个html文件就是一个网页,html文件用编辑器打开就显示文本,用浏览器打开就会渲染成网页。

HTML基本结构:

  • <!DOCTYPE html> 声明为 HTML5 文档
  • <html></html>是文档的开始标记和结束标记。此元素告诉浏览器其自身是一个 HTML 文档
  • <head></head>元素出现在文档的开头部分
  • <title></title>定义网页标题,在浏览器标题栏显示<body></body>之间的文本是可见的网页主体内容
<!DOCTYPE html>
<html>
<head>
    <title>黑猫编程</title>
</head>

<body>
    网页显示内容
</body>
</html>

前端开发需要哪些技术?

  • 首先是UI设计师使用Photoshop设计出前端效果图片,前端工程师根据图片转化成前端代码,主要需要HTML、CSS和JavaScript。
  • HTML是前端的框架,比如划分页面布局、设置段落。
  • CSS是装饰前端框架,可以给页面添加颜色、样式等,使前端界面更加漂亮。
  • JavaScript是给前端添加动态效果,使网站具备交互功能。

前端开发编辑器

前端开发语言本质上都是文本文件,只要后缀名符合标准,任何文本编辑器都可以用来写前端代码,在此推荐几种编辑器:

IDE——集成开发环境:

    • WebStorm
    • PyCharm

轻量级文本编辑器:

    • Atom
    • Sublime
    • Notepad++
    • Vim和Emacs
    • VS Code

VS Code开发前端项目比较方便,推荐安装插件:

  • Auto Rename Tag
  • Live Server

标签分类

分类一:

  • 闭合标签——双标签 <标签名 属性1=“属性值1” 属性2=“属性值2”……>内容部分</标签名>
  • 自闭合标签——单标签 <标签名 属性1=“属性值1” 属性2=“属性值2”…… />

分类二:

    • 块级标签:独占一行,可自行设置宽高div
    • 内联标签:按内容占位,高度和宽度由内容填充span

<meta>标签

所有浏览器都支持 <meta> 标签:

  • <meta>提供有关页面的元信息(meta-information),针对搜索引擎和更新频度的描述和关键词
  • <meta>提供的信息对用户是不可见的
  • SEO三大标签:titledescription:<meta name="description" content="专注编程课程研发,算法,信奥赛">keywords:<meta name="keywords" content="编程 在线课程 算法竞赛">
  • 网站logo<link rel="shortcut icon" href="cat.ico" type="image/x-icon">

图像标签

<img>标签可以在网页上插入一张图片,它是独立使用的标签,它的常用属性有:

    • src属性,定义图片的引用地址
    • alt属性 定义图片加载失败时显示的文字
    • 只设置图片宽度或者高度,会进行等比缩放
    • <img src="xxx.png" alt="xxx" />

标题标签

通过<h1>、<h2>、<h3>、<h4>、<h5>、<h6>,标签可以在网页上定义6种级别的标题。6种级别的标题表示文档的6级目录层级关系,比如说: <h1>用作主标题,其后是<h2>,再其次是 <h3>,以此类推。搜索引擎会使用标题将网页的结构和内容编制索引。

  • <h1>标题1</h1>
  • <h2>标题2</h2>

span和div

  • <div>定义文档中的分区,当作容器使用
  • <span>划分文字

思考:完成如下图所示效果

为七个div分别设置宽为100px,150px,200px,250px,300px,350px,400px;
			                      高均为20px;
			                      背景颜色分别为红橙黄绿青蓝紫
                            
<div style="width:100px;height:20px;background-color:red"></div>
<div style="width:150px;height:20px;background-color:orange"></div>
<div style="width:200px;height:20px;background-color:yellow"></div>
<div style="width:250px;height:20px;background-color:green"></div>
<div style="width:300px;height:20px;background-color:cyan"></div>
<div style="width:350px;height:20px;background-color:blue"></div>
<div style="width:400px;height:20px;background-color:purple"></div>
<!--添加两个div进行嵌套-->
<div style="width: 100px; height: 100px; background-color: pink">
  			<div style="width: 50px; height: 50px; background-color: yellow"></div>
</div>

CSS样式

css:Cascading Style Sheet 层叠样式表,它是用来美化页面的一种语言。

  • 没有使用css的效果图
  • 使用css的效果图

CSS引入三种方式

  • 行内式:是在标记的style属性中设定CSS样式。这种方式没有体现出CSS的优势,使得代码看起来整体格式混乱,不推荐使用。
<div style="background-color:black; color:red">hello world</div>
  • 内嵌式:是将CSS样式集中写在网页的<head></head>标签对的<style></style>标签对中
<style>
        div {
            background-color:yellow;
            color:green;
        }
</style>
  • 外链式:将css代码写在一个单独的.css文件中,在<head>标签中使用<link>标签直接引入该文件到页面中
<link rel="stylesheet" type="text/css" href="css/index.css"/>
  • 在加载网页时,首先找到html根文件,再加载引用的css外部样式,速度会比较慢,因此,内嵌式一般用于网站的首页,有利于提高页面加载速度,提高用户体验。

常用CSS选择器

css 选择器是用来选择标签的,选出来以后给标签加样式

  • 标签选择器 p { color:green }
  • 类选择器
.a {
      font-weight:bold;
      color:yellow;
}
<p class="a">a1 class</p>
<p class="a">a2 class</p>
<p class="b">b2 class</p>
<p class="b">b2 class</p>
  • id选择器
#info {
      font-size:24px;
      color:red;
}
<div>hello world</div>
<div id="info">My name is xuyanpeng.</div>
  • 优先级:id>class>标签
  • 结构伪类选择器
nth-child:
        nth-child(odd)
        nth-child(even)
        nth-child(3n+1)
        nth-child(3)
        nth-last-child(3)
        nth-child(-n+3)
        nth-child(n+5)
        last-child
        first-child

伪元素

  • ::before
.father::before{
            display: block;
            content: '最前面';
            width: 100px;
            height:100px;
            background-color: brown;
}
  • ::after
.father::after{
            display: block;
            content: '最后面';
            width: 100px;
            height:100px;
            background-color: yellow;
}

超链接

  • HTML使用标签<a>来设置超文本链接
  • 超链接可以是一个字,一个词,或者一组词,也可以是一幅图像,可以点击这些内容来跳转到新的文档或者当前文档中的某个部分
  • 当把鼠标指针移动到网页中的某个链接上时,箭头会变为一只小手
  • 在标签<a> 中使用了href属性来描述链接的地址
  • 默认情况下,链接将以以下形式出现在浏览器中:
一个未访问过的链接显示为蓝色字体并带有下划线
访问过的链接显示为紫色并带有下划线
点击链接时,链接显示为红色并带有下划线
  • 伪类选择器
a:link{
    text-decoration: none;
}

a:visited{
    color: red;
}

a:hover{
    color: orange;
}

a:active{
    color: green;
}

锚点定位

通过创建锚点链接,用户能够快速定位到目标内容。创建锚点链接分为两步:

文本标签

注释标签:如果需要在HTML文档中添加一些便于阅读和理解但又不需要显示在页面中的注释文字,就需要使用注释标签。

简单解释:注释内容不会显示在浏览器窗口中,但是作为HTML文档内容的一部分,也会被下载到用户的计算机上,查看源代码时就可以看到。

<!-- 注释语句 -->

文本属性

font-size:文本大小
font-family:字体
        无衬线字体:sans-serif
        衬线字体:serif
        等宽字体:monospace
font-weight:字体粗细 100-900
        normal:400
        bold:700
font-style:字体风格 normal italic
pre:预格式化文本
color:文本颜色
text-align:文本水平对齐方式
line-height:行间距
text-indent:首行缩进

特殊字符

背景属性

背景颜色:
        background-color:颜色值; 默认的值是 transparent 透明的
        background: rgba(0, 0, 0, 0.3); 最后一个参数为透明度
背景平铺:pbackground-repeat : repeat | no-repeat | repeat-x | repeat-y
背景固定:pbackground-attachment : scroll | fixed
背景位置:
        background-position : x y:
        x和y:为长度值或top、left等方位词
background-size:contain/cover

盒子模型

边框盒子:
        自动内减:box-sizing: border-box;
        默认:box-sizing: content-box;
margin合并:相邻盒子边距取较大值
margin塌陷:块级元素嵌套,字盒子设置外边距改变父盒子的位置

浮动应用,首页布局

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>

    <style>
        .container{
            width: 700px;
            border: 1px solid gray;
            margin: 0 auto;
            background-color: lightyellow;
        }

        .header{
            text-align: center;
            background-color: skyblue;
            padding: 8px;
            color: white
        }

        .left{
            width: 160px;
            float: left;
            padding: 23px;
        }

        .content{
            padding: 16px;
            margin-left: 190px;
            border-left: 1px solid gray;
        }

        .footer{
            padding: 8px;
            color: white;
            background-color: red;
        }
    </style>
</head>
<body>
    <div class="container">
        <div class="header">
            <h1>backcat1995.com</h1>
        </div>

        <div class="left">
            <p>黑猫编程教育品牌</p>
            <p>作者:黑猫</p>
        </div>

        <div class="content">
            <h2>课程大纲</h2>
            C++从入门到精通
            <br>
            玩转数据结构与算法
            <br>
            Python从小白到起飞
        </div>

        <div class="footer">
            地址:火星岩浆路1198弄
        </div>
    </div>
</body>
</html>

元素隐藏

overflow:

    • visible:默认值,溢出部分可见
    • hidden:溢出部分隐藏
    • scroll:无论是否溢出,都显示滚动条
    • auto:根据是否溢出,自动显示或隐藏滚动条

绝对单位和相对单位

1.绝对单位,当窗口大小发生改变,不能自适应窗口进行改变

<style>
    *{margin: 0; padding: 0;}
    .box{
        width: 500px;
        height: 500px;
        background-color: red;
    }
</style>

<div class="box"></div>

2.相对单位

<style>
    *{margin: 0; padding: 0;}
    .box{
        width: 50%;
        height: 50%;
        background-color: red;
    }

    body, html{
        height: 100%;
    }

    .box2{
        width: 50%;
        height: 50%;
        background-color: green;
    }
</style>

<div class="box">
    <div class="box2">

    </div>
</div>

风筝效果

<style>
        *{margin: 0; padding: 0;}
        .box{
            width: 200px; height: 200px; background-color: red;
            position: absolute; left: 50%; top: 50%;
            margin-left: -100px; margin-top: -100px;
        }

        .box div{
            width: 50%; height: 50%; background-color: black;
            position: absolute; left: 100%; top: 100%;
        }

</style>

<div class="box">
        <div>
            <div>
                <div></div>
            </div>
        </div>
</div>

列表标签

  • 无序列表标签(ul标签)
  • 有序列表标签(ol标签)

表格标签

  • <table>标签:表示一个表格
  • <tr>标签:表示表格中的一行
  • <td>标签:表示表格中的列
  • <th>标签:表示表格中的表头

表单标签

表单用于搜集不同类型的用户输入(用户输入的数据),然后可以把用户数据提交到web服务器。

表单属性设置:

  • action: 是设置表单数据提交地址
  • method: 是表单提交方式,提交方式有GET和POST
  • 表单元素属性设置
  • name: 表单元素的名称,用于作为提交表单数据时的参数名
  • value: 表单元素的值,用于作为提交表单数据时参数名所对应的值

响应式布局Bootstrap

响应式最主要特点就是针对不同宽度设备进行布局和样式设置,从而适配不同大小设备。

栅格系统:

显示和隐藏:

相关推荐

一键生成高颜值图表!让你的文字瞬间有画面感,职场人必备!

哈喽,打工人们!忙碌的周中,大熊又来给你们带来一个超实用的效率神器啦!这次的宝藏网站绝对是那种用过就离不开的"真香"型产品!假设你明天就要做重要汇报,可面对一大堆密密麻麻的文字材料,你...

批量将 Word 转换为 PDF/Excel/Txt/图片等多种格式

Word文档是我们工作中经常会打交道的一种文档格式,我们也经常会有需要对Word文档进行格式转换的需求,比如将Word格式转换为PDF、将Word文档转换为Excel、将Word...

绝了!一键用AI生成高颜值动态PPT(附详细步骤+Prompt)

大家好,我是一名酷爱研究AI的产品经理,最近我有个新发现:那些花了你3天做出来的PPT,现在用AI可以1小时搞定!而且颜值还高!为什么AI做PPT比传统方式效率高10倍?我用一张图就能告诉你:AI生成...

ztext - 简单几行代码创建酷炫3D特效文字的开源JS库

把网页上的文字变成酷炫的3D风格,还能制作旋转动效,有了ztext.js,只需要几行代码。ztext能做什么ztext.js是一个能把常规的平面文字变成3D样式的前端开源代码库,让开发者...

文字内插入小图片,也太可爱了吧(文字中怎么插图片)

图文排版H5手机版秀米有小伙伴留言问添加图片的时候可不可以把图片添加到文字之间比如下面这句话中的小贴纸图片后面可以接着输入文字其实吧这就是咱们的『文字内插入小图片』功能嘛可以用来在文字内加个表情包又...

Linux环境下C++代码性能分析方法(linux怎么写c++代码)

技术背景在开发C++应用程序时,找出代码中运行缓慢的部分是进行性能优化的关键。在Linux系统上,有多种工具和方法可用于对C++代码进行性能分析,每种方法都有其特点和适用场景。实现步骤手动中断调试法在...

SVG互动图文,让你的文章更有趣!教你4种简单易学的黑科技玩法!

如果你是一个公众号创作者,那么你一定想知道如何让你的文章更加吸引人,更加有趣,更加有创意。你可能已经尝试过各种图文排版技巧,但是你是否知道,有一种黑科技可以让你的文章变得更加酷炫,更加互动,更加爆款?...

Videoscribe怎么实现实心中文汉字的手绘制作

很多朋友在制作手绘视频的时候,不知道怎么输入实心的中文汉字,之前我们已经给大家分享了怎么输入汉字的方法,但是有一点遗憾的是输出的汉字是空心的手绘展示,在视觉上并不是非常的美观。经过大家不断的探索,终于...

一款用于将文本转化成图表的现代化脚本语言

大家好,又见面了,我是GitHub精选君!今天要给大家推荐一个GitHub开源项目terrastruct/d2,该项目在GitHub有超过10.3kStar,用一句话介绍该项目就是:...

探秘 Web 水印技术(制作水印网站)

作者:fransli,腾讯PCG前端开发工程师Web水印技术在信息安全和版权保护等领域有着广泛的应用,对防止信息泄露或知识产品被侵犯有重要意义。水印根据可见性可分为可见水印和不可见水印(盲水印)...

不忍心卸载的五款神仙工具(不忍心卸载的五款神仙工具是什么)

001.效率工具uTools-装机必备的生产力工具集uTools是一款非常强大的可以装下几乎所有效率工具的电脑生产力工具集,目前拥有Windows、Mac和Linux三个版本。软件界面...

「SVG」飞花令!这份最高检工作报告“超有料”

原标题:【SVG】飞花令!这份最高检工作报告“超有料”栏目主编:秦红文字编辑:沈佳灵来源:作者:最高人民检察院...

svg|2025政府工作报告,有没有你关心的数据?

··<setattributeName="visibility"begin="click+0s"dur="1ms"fill="freeze"restart="never"to="hi...

videoscribe只能输入英文,如何输入中文文本?

videoscribe只能输入英文,如何输入中文文本?打开VideoScribe软件,打开要添加中文字体的位置。打开Photoshop并在文件中创建一个新的透明背景图层。注意:必须是透明背景层。...

五个流行的SVG在线编辑器(svg编辑工具)

随着响应网络的发展,越来越多的高质量的SVG在线编辑器被公众所熟知。SVG矢量图形也越来越受欢迎,以便在任何设备上呈现图像,甚至一些易于使用的SVG在线编辑器,可以替代PS,本文总结了五种流行的SVG...