前端开发都需要哪些工具?

html-css07

前端开发都需要哪些工具?,第1张

每个前端开发人员都有自己喜欢的开发工具,用这些工具能让编码更容易并且“令人愉快”。分享一些我认为真的很棒的很棒的Web开发工具!

1.Glitch

https://glitch.com

好的,这不仅仅是一个工具,还是一个非常棒的编码平台以及一个很棒的技术社区。我可以在内置代码编辑器的帮助下托管我的项目。支持多种语言,但最适合NodeJS。

2.Shadows

https://brumm.af/shadows

这个网站提供生成平滑阴影的CSS代码,可以创建平滑的边框阴影。它看起来真的很流畅,令人满意。

3.Coolors

https://coolors.co

这是一款非常好的在线工具,可以为项目生成匹配的颜色方案。如果不喜欢当前的方案,按下空格键,它会重新生成一个配色方案,直到你满意~

4. Blobmaker

https://blobmaker.app

Blobmaker可帮助你随机生成各种尺寸,不同颜色和形状的SVG Blob。你可以用作背景或创建看起来很酷的动画。

5.Getwavs

https://getwaves.io

与Blobmaker相似,Get Waves能够随机生成不同颜色和不同数量的波浪。用作网页的页脚或页眉看起来不错。

6. Undraw.co

https://undraw.co

开放源代码项目的SVG插图集,可用来做登录页面,404页面等,当然普通页面也能用!上面的插图可以不带归属地版权的使用,无需支付任何费用。

7. Marcdown

https://liyasthomas.github.io/marcdown

由Liyas Thomas提供的在线实时的Markdown网页编辑器,它可预览Markdown代码,将其发布到GitHub上。它提供一个非常漂亮的暗黑模式。还可脱机工作,这使得它显得更出色。

8.postwoman

https://postwoman.io

这是Liyas Thomas构建的另一个工具。Postwoman是一个API请求构建工作。开发者可以不使用代理来测试 API。这是一个渐进式Web应用程序,可以保存到桌面来用。它是轻量级的产品,基本上可以是Postman的在线替代品。

9. Screely.com

https://screely.com

它可以帮助你创建超级漂亮的网站截图模型。如果你不是MacBook用户,但需要更好的网站图片作为自述文件,它非常适合我们。

10. CSS网格生成器

https://cssgrid-generator.netlify.com/

这是Sarah Drasner的创建的优秀网站,它使用CSS创建动态网格布局。

以上是10款web前端开发工具分享,希望对你有帮助。

为什么我们需要网格布局?

在我们的Web内容中,可以将其分割成很多个内容块,而这些内容块都占据自己的区域(regions),可以将这些区域想像成是一个虚拟的网格。到目前为止,在一个模板中使用不同的结构标签,使用多个浮动和手动计算实现一个布局。这对于Web前端人员来说,这是一件痛苦之事。而网格布局将让你摆脱这样的困局,让你的布局方法变得非常简单与清晰。

网格布局给了我们一种方法——创建的结构与使用表格(table)布局并没有什么不同。然而,他是在CSS中实现而不是在HTML中实现,同时还可以依赖于媒体查询根据不同的上下文得新定义布局。这对于喜欢响应式设计的同学来说是一个绝对利好的消息。因为你不在需要再担心你的HTML结构而影响你的布局。

网格布局还可以让我们摆脱现在布局中存在的文档流限制,换句话说,你的结构不需要根据设计稿从上往上布置了。这也意味着您可以自由地更改页面元素位置。这最适合你在不同的断点位置实现你最需要的布局,而不再需要为响应你的设计而担心HTML结构的问题。

什么是CSS Grid Layout?

CSS Grid Layout是CSS为布局新增的一个模块。网格布局特性主要是针对于Web应用程序的开发者。可以用这个模块实现许多不同的布局。网络布局可以将应用程序分割成不同的空间,或者定义他们的大小、位置以及层级。

就像表格一样,网格布局可以让Web设计师根据元素按列或行对齐排列,但他和表格不同,网格布局没有内容结构,从而使各种布局不可能与表格一样。例如,一个网格布局中的子元素都可以定位自己的位置,这样他们可以重叠和类似元素定位。

此外,没有内容结构的网格布局有助于使用流体、调整顺序等技术管理或更改布局。通过结合CSS的媒体查询属性,可以控制网格布局容器和他们的子元素,使用页面的布局根据不同的设备和可用空间调整元素的显示风格与定位,而不需要去改变文档结构的本质内容。

浏览器兼容性

众观下来,仅在IE10+上支持,而且也仅支持部分属性。或许很多同学看到这样的兼容性,又会止步,或者呵呵两声闪人了。不过我们学习是无防,在各浏览器中通过设置可以做测试效果,在下一次中将会向大家介绍如何在浏览器中开启此功能。

Grid vs Flexbox

在www-list邮件中常常会看到一种Pk的现像:谈到网格就会扯到Flexbox。假设浏览器都支持这两个模块,你将选择grid还是flexbox来给页面布局。其实当你了解两者之后你会很轻松的做出选择。flexbox是一维布局,他只能在一条直线上放置你的内容区块;而grid是一个二维布局。前面也简单说到,你可以根据你的设计需求,将内容区块放置到任何你想要放的地方。那么不用多说,你应该知道哪一种更适合你的布局。

网格术语

想要玩转CSS Grid Layout,就需要先了解网格给我们的一些新术语以及一些CSS属性和值。在这一节中,将简单的向大家解释网格布局中的一些概念与术语。

网格线(Grid Lines)

网格线组成了网格,他是网格的水平和垂直的分界线。一个网格线存在行或列的两侧。我们可以引用它的数目或者定义的网格线名称。

上图突出显示的红线就是第二列的网格线(line2)。

网格轨道(Grid Track)

网格轨道是就是相邻两条网格线之间的空间,就好比表格中行或列。所在在网格中其分为grid column和grid row。每个网格轨道可以设置一个大小,用来控制宽度或高度。

图中突出显示的就是行线line2和line3之间组成的网格轨道。

网格单元格(Grid Cell)

网格单元格是指四条网格线之间的空间。所以它是最小的单位,就像表格中的单元格。

图中突出显示的单元格是由行线line2、line3和列表line2、line3组成的。

网格区域(Grid Area)

网格区域是由任意四条网格线组成的空间,所以他可能包含一个或多个单元格。相当于表格中的合并单元格之后的区域。

图中突出显示的网格区域是行线line1、line3和列线line2、line4之间的区域,其主要包括了四个网格单元格。

网格容器(Grid Containers)

通过使用display属性给元素显式设置了属性值grid或inline-grid,此时这个元素将自动变成网格容器。这个类似于flexbox一样,将元素设置设置为display:flex,元素将自动变成弹性盒模型。

由于网格容器不是块容器,所以有部分属性在网格布局中将会失效:

多列布局模块中的所有column-*属性运用在网格容器上将失效

float和clear使用在网格项目(网格单元格Grid Cell)上将失效

vertical-align使用在网格单元格上将失效

::first-line和::first-letter这样的伪元素不能应用在网格容器上

网格单元格顺序(order)

网格单元格顺序和Flexbox模块一样,通过order属性来对网格单父元格进行顺序重排。

从默认网格入门

让我们先从一个基本的 HTML 开始,看看如何在上面应用默认网格。

<!DOCTYPE html>

<html>

<head>

<title>Fixed layout example with Bootstrap</title>

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<!-- Bootstrap -->

<link href="bootstrap/css/bootstrap.min.css" rel="stylesheet"media="screen">

</head>

<body>

<script src="http://code.jquery.com/jquery.js"></script>

<script src="bootstrap/js/bootstrap.min.js"></script>

</body>

</html>

Bootstrap 使用 CSS 的 class "row" 来创建水平行,使用 CSS 的 class "spanx"(x 的值从 1 到 12)来创建垂直列。通过这两个就可以创建一个三列的网格(每一列包含一些文本内容),HTML 如下所示

<!DOCTYPE html>

<html>

<head>

<title>Fixed layout example with Bootstrap</title>

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<!-- Bootstrap -->

<link href="bootstrap/css/bootstrap.min.css" rel="stylesheet"media="screen">

</head>

<body>

<div class="container">

<div class="row">

<div class="span4"><p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nam cursus. Morbi ut mi. Nullam enim leo, egestas id, condimentum at, laoreet mattis, massa. Sed eleifend nonummy diam. Praesent mauris ante, elementum et, bibendum at, posuere sit amet, nibh. Duis tincidunt lectus quis dui viverra vestibulum. Suspendisse vulputate aliquam dui. Nulla elementum dui ut augue. Aliquam vehicula mi at mauris. Maecenas placerat, nisl at consequat rhoncus, sem nunc gravida justo, quis eleifend arcu velit quis lacus. Morbi magna magna, tincidunt a, mattis non, imperdiet vitae, tellus. Sed odio est, auctor ac, sollicitudin in, consequat vitae, orci. Fusce id felis. Vivamus sollicitudin metus eget eros.</p></div>

<div class="span4"><p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nam cursus. Morbi ut mi. Nullam enim leo, egestas id, condimentum at, laoreet mattis, massa. Sed eleifend nonummy diam. Praesent mauris ante, elementum et, bibendum at, posuere sit amet, nibh. Duis tincidunt lectus quis dui viverra vestibulum. Suspendisse vulputate aliquam dui. Nulla elementum dui ut augue. Aliquam vehicula mi at mauris. Maecenas placerat, nisl at consequat rhoncus, sem nunc gravida justo, quis eleifend arcu velit quis lacus. Morbi magna magna, tincidunt a, mattis non, imperdiet vitae, tellus. Sed odio est, auctor ac, sollicitudin in, consequat vitae, orci. Fusce id felis. Vivamus sollicitudin metus eget eros.</p></div>

<div class="span4"><p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nam cursus. Morbi ut mi. Nullam enim leo, egestas id, condimentum at, laoreet mattis, massa. Sed eleifend nonummy diam. Praesent mauris ante, elementum et, bibendum at, posuere sit amet, nibh. Duis tincidunt lectus quis dui viverra vestibulum. Suspendisse vulputate aliquam dui. Nulla elementum dui ut augue. Aliquam vehicula mi at mauris. Maecenas placerat, nisl at consequat rhoncus, sem nunc gravida justo, quis eleifend arcu velit quis lacus. Morbi magna magna, tincidunt a, mattis non, imperdiet vitae, tellus. Sed odio est, auctor ac, sollicitudin in, consequat vitae, orci. Fusce id felis. Vivamus sollicitudin metus eget eros.</p></div>

</div>

</div>

<script src="http://code.jquery.com/jquery.js"></script>

<script src="bootstrap/js/bootstrap.min.js"></script>

</body>

</html>

下面是网格系统的图形表示

这样,我们就通过对每个列使用 "span4" class,创建好了一个三列网格。"container" class 是用来保存整个结构的。您可以在这里查看在线实例。从这一点,我们可以推导出用于创建给定数量列的 CSS class 的一般语法。

创建网格的一般语法:

<div class="row">

<div class="spanx">

inline elements like span, block level elements like p, div.

</div>

repeat <div class="spanx">y times.

其中 y 是您想要创建的列数以及 x 等于 12(这是您可以创建的最大的列数)的总和。x 必须是正整数,且值必须从 1 到 12。

例如,如果您有三个等宽的列,每个列都是 class="span4",但是如果您想让第一个列比其他两个更大一些,第一个列可以使用 class="span6",其他两个列使用 class="span3"。

如何在固定网格中创建行

接下来,在我们继续其他实例之前,先来看看在固定网格中用来创建行和列的 CSS 规则。

row class 如下所示

.row {

margin-left: -20px

*zoom: 1

}

设置左边距为负的 20px,且设置 "*zoom: 1"。这里的 "*" 表示所有元素的 zoom 属性都设置为 1,用来修复 IE6/7 的 bug。设置 zoom 属性为 1,即设置了一个名为 hasLayout 的内部属性,用于修复 IE6/7 的许多缩放/渲染问题。

.row:before,

.row:after {

display: table

line-height: 0

content: ""

}

Bootstrap 使用前面的 CSS 代码来创建行。它使用 ":before" 和 ":after" 的 CSS 属性。这两个是伪元素。":before" 用于在目标元素之前插入一些内容,":after" 用于在目标元素之后插入一些内容。"display:table" 使得元素以表格形式呈现。通过设置 "line-height: 0" 来确保每个行没有自己的行高,通过使用 'content: ""' 来确保元素前后没有内容被插入。