10分钟学会基本的 Flexbox 布局

愚人码头注:本文在英文原文的基础上加了一些便于理解的注释和示例。

什么是 Flexbox ?

Flexbox 是 flexible box 的简称(愚人码头注:意思是“灵活的盒子容器”),是 CSS3 引入的新的布局模式。它决定了元素如何在页面上排列,使它们能在不同的屏幕尺寸和设备下可预测地展现出来。

它之所以被称为 Flexbox ,是因为它能够扩展和收缩 flex 容器内的元素,以最大限度地填充可用空间。与以前布局方式(如 table 布局和浮动元素内嵌块元素)相比,Flexbox 是一个更强大的方式:

  • 在不同方向排列元素
  • 重新排列元素的显示顺序
  • 更改元素的对齐方式
  • 动态地将元素装入容器

什么情况下不建议使用 Flexbox ?

虽然 Flexbox 非常适合缩放,对齐和重新排序元素,但以下情况应该尽量避免使用 Flexbox 布局: 继续阅读

2017 年用于 UI 设计的 CSS3 和 JavaScript 动画库(TOP 9)

前端网页设计在过去的十年里经历了一场革命。在2007年,我们大多数人仍在设计静态杂志布局,在2017年,我们重新设计了数字机器,有成千上万的调整、协调、移动的部件。

简单的说,很好的UI设计师还需要成为很好的动画师 – 需要对网络动画技术有一个很好的理解。

这是我们指南中最新更新的,帮助你为每个任务选择正确的动画库。我们将通过 9 个免费的、编码良好的动画库,最适合于UI设计,它们的优点和缺点,以及何时选择它们。

请记住,我们是从一个熟悉代码的UI设计师(而不是从代精通代码的开发人员)的角度来看待每个库。这些库中有一些是纯 CSS 实现的。其他是JavaScript 的,但是,除了了解基本的 HTML/CSS 之外,使用他们你不需要更多的其他知识。链接一个动画库 – 添加一个 CSS 类 即可。
继续阅读

Chrome DevTools – 检查动画

使用Chrome DevTools Animations(动画)检查器检查和修改动画。

animation inspector

TL;DR

  • 通过打开Animation Inspector(动画检查器)捕获动画。它会自动检测动画并将它们分组。
  • 通过减慢动画,重播动画,或查看源代码,来检查动画。
  • 通过更改动画的时间,延迟,持续时间或关键帧偏移来修改动画。

概述

在Chrome DevTools动画检查主要有两个目的。

  • 检查动画。 您希望减慢,重播或查看动画组的源代码。
  • 修改动画。 您想要修改动画组的时间,延迟,持续时间或关键帧偏移。 目前不支持贝塞尔编辑和关键帧编辑。

动画检查支持CSS动画,CSS转换和web动画。目前不支持requestAnimationFrame动画。

什么是动画组?

动画组是一组看起来彼此相关的动画。目前,web中没有真正的组动画概念,因此运动设计师和开发人员必须组合和计时单个动画,以使它们看起来是一个连贯的视觉效果。Animation Inspector(动画检查器)根据开始时间(不包括延迟等)预测哪些动画相关,并将它们并排分组。换句话说,在同一脚本块中触发的一组动画会被分到一组,但如果它们是异步的,那么它们将被分别分组。

开始

有两种打开动画检查器的方法:

  • 打开Elements(元素)面板,找到Styles(样式)窗格,然后按下 Animations(动画)按钮(animations button )。
  • 打开Command Menu(命令菜单)和类型Drawer: Show Animations

继续阅读

CSS3 Flexbox解决方案

1df97ee6-992d-4723-aa69-68730625dcc7

长期以来,CSS 一直缺乏合适的布局机制。 变形,动画,滤镜,对这门伟大的语言来说都很有用的补充的,但是都没有解决 Web 开发人员一直抱怨的的主要的看起来似乎是永恒的问题。

终于,感谢Flexbox ,我们有了一个解决方案。查看说明、DEMO及项目源代码:Flexbox解决方案

这个网站不是另一个CSS框架。相反,它的目的是展示曾经很困难甚至无法单独使用 CSS 能解决的问题,而现在使用Flexbox简单易用。随着最近发布的Internet Explorer 11和Safari 6.1,最新的Flexbox规格已经被每一个的现代浏览器支持(愚人码头注:浏览器的支持请客,你可以看 http://caniuse.com/#feat=flexbox)。 继续阅读

边玩游戏边学Flexbox 布局

513f757a-9117-4e87-ad86-141b90122a98

Flexbox 布局在很大程度上解决了网页布局问题。但是实际使用的时候还是有一定的难度,因为属性太多,应用非常灵活。

愚人码头注:Flexbox属性具体属性查看 CSS3 Flexbox属性可视化指南这篇文章。

这里给大家介绍一个边玩游戏边学习Flexbox 布局的网站,将枯燥的说明文档瞬间变成有趣、又更易理解的游戏学习。

FLEXBOX FROGGY:http://flexboxfroggy.com/#zh-cn

这里也从github上下了一个,作为镜像网页:http://www.css88.com/tool/flexboxfroggy/#zh-cn

CSS3 Flexbox属性可视化指南

a-vusial-guide-to-css3-flexbox-layout-and-properties

愚人码头注:

Flexbox 布局(国内很多人称为弹性布局)正式的全称为 CSS Flexible Box布局模块,它是CSS3新增的一种布局模式。它可以很方便地用来改善动态或未知大小的元素的对齐,方向和顺序等等。flex容器的主要特性是它可以调整其子元素的宽度或高度去填充可用的空白区,以最优的方式达到兼容不同屏幕大小。

很多设计人员和开发人员发现使用Flexbox来布局很容易,可以使用更少的代码,更简单的方式实现更复杂的布局,也使整个开发过程更为简单。Flexbox布局算法不同于那些基于垂直或水平的块或内联布局。Flexbox布局应该用于小的应用程序组件之中,而新的CSS 网格布局模块正在兴起,来处理大规模布局。

本指南将以可视化的方式重点介绍 flex 属性是如何影响布局的,不是解释 flex 属性是如何工作。 继续阅读

:target 伪类使用技巧

什么是CSS伪类?

通常选择器不能表现HTML元素或属性的状态,我们可以在CSS选择器上添加伪类表示元素的状态、特征。伪类名写在选择器的:冒号后面,必要时可以添加(),例如:#comments:not(:target)

:target 伪类用来指定那些包含片段标识符的 URL 的目标元素样式。 例如:http://www.css88.com/demo/target-selector/#target-test这个 URL 包含了 #target-test 片段标识符。 在HTML中, 标识符是元素的id(或者name属性)。 这个示例 URL 指向的是ID为”target-test”的元素 。看看这个最简单的例子,页面上有个元素,如下:

<div id="target-test">这个元素的id为"target-test"</div>

添加CSS代码:

#target-test {
    background-color: transparent;
    border-bottom: 3px solid #ffdb3a;
    font-weight: 700;
}
#target-test:target {
    background-color: #ffdb3a;
}

点击查看:http://www.css88.com/demo/target-selector/

当然这个是最简单的例子,下面我介绍几个有意思的例子。 继续阅读

css3 loading(SVG loading)动画集合

在这些情况下,我们一般会用到(加载)loading动画,提示于用户页面在加载中,这些UX常识我想很多设计师都懂。今天分享几个仅用CSS3和SVG实现几个loading动画效果。

Loaders.css

令人愉快的和注重性能的纯CSS加载动画。

演示:https://connoratherton.com/loaders

Github:https://github.com/ConnorAtherton/loaders.css

loading.io

通过SVG / CSS / GIF打造Ajax加载图标!

网址:http://loading.io/

spinkit

CSS加载动画集合。 继续阅读

Flexbox布局(CSS3 弹性布局,Flexible Box)之 基本概念解析

接上一篇:Flexbox布局(CSS3 弹性布局,Flexible Box)之基本介绍

Flexbox布局的基本概念

这里再详细介绍一下基本概念

flex_terms

flex container(flex容器 或 弹性容器

flex容器是flex元素的的父元素。 通过设置display 属性的值为flexinline-flex定义。

注旧版本的属性值:

  • box:将对象作为弹性容器显示。(最老版本)
  • inline-box:将对象作为内联块级弹性容器显示。(最老版本)
  • flexbox:将对象作为弹性容器显示。(过渡版本)
  • inline-flexbox:将对象作为内联块级弹性容器显示。(过渡版本)

flex item(flex子元素 或 弹性子元素)

flex容器的每一个子元素均为一个flex子元素。注意:felx容器直接包含的文本变为匿名的弹性子元素。

注意:Flexbox布局和原来的布局是2套概念,所以部分css属性在flex子元素中将不起作用,比如:floatclear , vertical-align , column-*继续阅读

Flexbox布局(CSS3 弹性布局,Flexible Box)之基本介绍

起个标题真累啊!发现真的很能用一个标题去概括要写的内容,所以凑活着用吧。

昨天在微博上随便发了一条“幼稚”的微博,见http://weibo.com/1477178352/CqbcOeLWk?type=comment

移动端有了flexbox布局,table-cell彻底被抛弃掉了

没想到竟然会招来这么多前端和大牛的评论和吐槽,归根结底还是各种环境和浏览器器下的兼容性问题,当然大牛们谈的是标准规范和设计,我们谈的是应用。写这些东西是为了再次仔细的学习一下Flexbox布局,和一些自己认为比较实际的应用实例。声明一点:本人没有广泛的测试,公司穷,买不起那么多的安卓测试机,有点淡淡的忧伤。不过说句不负责的话,这也给我不兼容低版本的机型和浏览器找到了一个非常合理的非主观因素。

Flexbox布局概念

Flexbox布局( Flexible Box 或CSS3 弹性布局),是CSS3中的一种新的布局模式,是可以自动调整子元素的高和宽,来很好的填充任何不同屏幕大小的显示设备中的可用显示空间,收缩内容防止内容溢出,确保元素拥有恰当的行为的布局方式。使用Flexbox来布局更容易,可以使用更少的代码,更简单的方式实现更复杂的布局,例如对齐方式,排列方向,排列顺序(这也是Flexbox布局的核心能力所在),弹性盒中的子元素通过在各个方向放置就可以以弹性的尺寸适应父元素的显示区域。由于子元素的显示顺序和它们在代码中 的顺序是独立的,通过使用弹性盒,定位子元素变得更加简单,复杂的布局也能够使用更清晰的代码更简单的实现。独立显示被设定成只针对可见元素,而不是基于代码的声明和导航顺序。 继续阅读