[css]我要用css画幅画(二)

接着之前的[css]我要用css画幅画(一) , 今天,我又画一个房子,很简单,屋顶、墙壁、门。

现在开始,做得效果都只兼容chrome,所以下面的css3的属性可能只有-webkit-前缀。 我只是为了兴趣画画, 何必理会兼容性呢,是吧?

html如下:

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Css Paint</title>
 6     <link rel="stylesheet" type="text/css" href="css/sun.css" />
 7     <link rel="stylesheet" type="text/css" href="css/house.css" />
 8 </head>
 9 <body>
10     <div class="sun">
11         <div class="sun-body"></div>
12         <div class="sun-shine-light sun-shine-light1"></div>
13         <div class="sun-shine-light sun-shine-light2"></div>
14         <div class="sun-shine-light sun-shine-light3"></div>
15         <div class="sun-shine-light sun-shine-light4"></div>
16         <div class="sun-shine-light sun-shine-light5"></div>
17     </div>
18
19     <div class="house-width house">
20         <div class="house-width house-roof house-roof-left"></div>
21         <div class="house-width house-roof house-roof-right"></div>
22         <div class="house-width house-wall">
23
24             <div class="house-wall-door">
25
26                 <div class="house-wall-door-handle"></div>
27             </div>
28         </div>
29     </div>
30 </body>
31 </html>

css如下:

(原来的sun.css)

 1 .sun{
 2     position: relative;
 3 }
 4
 5 .sun-body{
 6     background-color: red;
 7     border-radius: 50%;
 8     height: 300px;
 9     left: -100px;
10     position: absolute;
11     top: -100px;
12     width: 300px;
13     z-index: 9;
14 }
15 .sun-shine-light{
16     background-color: yellow;
17     height: 5px;
18     left:250px;
19     margin-top:30px;
20     position: relative;
21     width: 300px;
22     z-index:10;
23 }
24 .sun-shine-light1{
25     -webkit-transform: rotate(-3deg);
26     -moz-webkit-transform: rotate(-3deg);
27     -ms-webkit-transform: rotate(-3deg);
28     -o-webkit-transform: rotate(-3deg);
29 }
30 .sun-shine-light2{
31     top: 70px;
32     left: 240px;
33     -webkit-transform: rotate(10deg);
34     -moz-webkit-transform: rotate(10deg);
35     -ms-webkit-transform: rotate(10deg);
36     -o-webkit-transform: rotate(10deg);
37 }
38 .sun-shine-light3{
39     top: 160px;
40     left: 195px;
41     -webkit-transform: rotate(30deg);
42     -ms-transform: rotate(30deg);
43     -o-transform: rotate(30deg);
44     transform: rotate(30deg);
45 }
46 .sun-shine-light4{
47     top: 215px;
48     left: 85px;
49     width: 260px;
50     -webkit-transform: rotate(55deg);
51     -ms-transform: rotate(55deg);
52     -o-transform: rotate(55deg);
53     transform: rotate(55deg);
54 }
55 .sun-shine-light5{
56     top: 200px;
57     left: -50px;
58     width: 230px;
59     -webkit-transform: rotate(85deg);
60     -ms-transform: rotate(85deg);
61     -o-transform: rotate(85deg);
62     transform: rotate(85deg);
63 }

sun.css

(新增的house.css)

 1 .house-width {
 2     width: 600px;
 3 }
 4
 5 .house {
 6     bottom: 20px;
 7     height: 400px;
 8     left: 600px;
 9     position: absolute;
10 }
11
12 .house-roof {
13     background: gold;
14     border: 3px solid #000;
15     left: -30px;
16     height: 180px;
17     position: relative;
18 }
19
20 .house-roof-left {
21     border-left-width: 15px;
22     float: left;
23     -webkit-transform: matrix(0.25, 0, -0.4, 1, -298, 0);
24 }
25
26 .house-roof-right {
27     -webkit-transform: matrix(1, 0, 0.3, 1, 0, 0);
28 }
29
30 .house-wall {
31     border: 2px solid #000;
32     height: 220px;
33 }
34 .house-wall::before{
35     border: 2px solid #000;
36     height: 220px;
37     width:130px;
38     content:‘‘;
39     left: -133px;
40     top: 186px;
41     position: absolute;
42     display: block;
43 }
44
45 .house-wall-door {
46     background: orange;
47     bottom: 0px;
48     height: 180px;
49     left: 110px;
50     position: absolute;
51     width: 110px;
52 }
53
54 .house-wall-door-handle {
55     background: brown;
56     border: 1px solid #000;
57     border-radius: 50%;
58     height: 15px;
59     position: absolute;
60     right: 10px;
61     top: 90px;
62     width:15px;
63 }

house.css

下面是code pen中的效果:  Sun and house

这里用到了以下这个陌生的css:

-webkit-transform: matrix(1, 0, 0.3, 1, 0, 0);  (由于任性的我只兼容chrome, 所以这里都带有-webkit前缀, 如果你要在FIREFOX下用,就改成-moz-前缀吧)

matrix, 我在画屋顶时用到它,matrix是用于画矩形的。

matrix的MDN文档在此:https://developer.mozilla.org/zh-CN/docs/Web/CSS/transform

另外,你可以在这里试验这个属性不同参数下的表现:http://www.css88.com/tool/css3Preview/Transform-Matrix.html

matrix接受6个参数, 这六个参数均接受正负小数:

1. 表示宽度的变性比例, 1表示100%,即不变, 0.25表示只有原本的25%。

2. 我的猜测是:表示以原点为基准,原点左边向上倾斜变形、原点右边向下倾斜变形的数值,这个数值是倾斜变形角度的正切函数的值,也就是当你输入1的时候,会顺时针倾斜45度,因为tan45 = 1。或者叫做倾斜的斜率。

3. 我的猜测是:表示以原点为基准,原点之上向左倾斜变形、原点之下向右倾斜变形的斜率。 该数值越大,倾斜变形越严重。

4.表示高度的变性比例, 1表示100%,即不变, 0.25表示只有原本的25%。

5.表示横向位移的像素值, 该参数只接受数字,不需要填写单位(px)。当你写100时,就向左平移了100px。 也可以输入负数。

6.表示纵向位移的像素值, 其他同上。

上面提到的“原点”, 可以通过transform-origin属性进行设置,若未设置,应该是对象的重心。

今天就到这,谢谢观看。 如有错误,欢迎指正。

时间: 2024-09-26 22:58:22

[css]我要用css画幅画(二)的相关文章

[css]我要用css画幅画(四)

接着之前的[css]我要用css画幅画(三), 今天,我画了两朵云,并给小明介绍了个朋友:静静. github:https://github.com/bee0060/Css-Paint , 完整代码在pages/sun-house-4.html和相关的css中可以找到 demo: http://bee0060.github.io/Css-Paint/pages/sun-house-4.html 完整html如下: 1 <!DOCTYPE html> 2 <html lang="

[css]我要用css画幅画

几年前开始就一直想用css画幅画. 今天才真正开始, 从简单的开始. 作为一个工作压力那么大的程序员,我首先要画一个太阳. html如下: 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Css Paint</title> 6 <link rel="stylesheet

[css]我要用css画幅画(七) - 哆啦A梦

接着之前的[css]我要用css画幅画(六),今天画的有所不同,画的是哆啦A梦,我们小时候对他的称呼其实是小叮当机器猫. (PS:这次我要做的事情,很多人已经做过,这并不是什么创新,我只是在学习并记录下学习的过程) 这次就不多说CSS属性的基础概念了. 说说我画的过程吧, 好,进入正题. 因为和之前的瞎画不同,这次是画现有的东西.我认为临摹是比较简单的. 我先上网找了下要临摹的对象,找了个最中规中矩的图片,如下: 这对我来说不是一个简单的任务, 而我处理不简单的任务的解决方案,就是把他拆分再拆分

[css]我要用css画幅画(五)

接着之前的[css]我要用css画幅画(四), 这次我给小明和静静增加了对话,用了简单的动画效果. github:https://github.com/bee0060/Css-Paint , 完整代码在pages/sun-house-4.html和相关的css中可以找到 demo: http://bee0060.github.io/Css-Paint/pages/sun-house-5.html 完整html如下: 1 <!DOCTYPE html> 2 <html lang="

[css]我要用css画幅画(九) - Apple Logo

接着之前的[css]我要用css画幅画(八) - Hello Kitty,这次画的是苹果公司的logo 这次打算将分析和实现步骤尽量详细的说一说. 其实之前的也打算详细讲分析和设计过程,不过之前的图比较复杂,如果讲那么细,真是怕要讲到猴年马月. 这次的图足够简单,就拿这个图来说明. 都是一些简单的基本方法,通过举一反三,可以实现大部分效果. Github Demo:http://bee0060.github.io/Css-Paint/pages/logo/apple.html Code Pen

Java学习总结(二十四)——前端:CSS样式设计(CSS引入,选择器,盒子模型,浮动元素)

一.CSS引入方式1.CSS简介:(1)CSS(Cascading style Sheets):层叠样式表.用来给html网页设置样式;(2)当多个选择器对同一个元素进行样式设计时,则该元素的样式为多个选择器叠加的效果(当有冲突时,按照优先级设置);2.引入方式:(1)方式一:行内样式(在html元素的style属性上设置样式)(2)方式二:页面内嵌样式(在head标签内部嵌入样式)(3)方式三:引入外部样式文件例1(演示CSS三种引入方式):Html代码: <!DOCTYPE html> &

CSS 文本字体颜色(CSS color)

CSS 颜色样式篇 目录 (音乐放松椅) 认识CSS 颜色(color) 网页颜色基础 两种方法设置对象颜色样式 文字颜色控制color 网页背景颜色color 边框颜色color 网页color RGB设置 网页color 颜色表 css 颜色样式color总结 一.认识CSS 颜色(CSS color) - TOP(音乐放松椅) 这里要介绍的是网页设置颜色包含有哪些:网页颜色规定规范.1.常用颜色地方包含:字体颜色.超链接颜色.网页背景颜色.边框颜色2.颜色规范与颜色规定:网页使用RGB模式

normalize.css使用方法,normalize.css下载

来,让我们谈一谈 Normalize.css Nov 18, 2014 - 浏览量:22,046次 | Normalize.css CSS 本文译自Normalize.css官网: http://nicolasgallagher.com/about-normalize-css/ Normalize.css 只是一个很小的CSS文件,但它在默认的HTML元素样式上提供了跨浏览器的高度一致性.相比于传统的CSS reset,Normalize.css是一种现代的.为HTML5准备的优质替代方案.No

div css行数实现 css显示行数序列值布局

div css布局中常常遇到文章标题列表前有序号(1-10)排版布局,如何简单实现这类新闻文章标题列表排版布局呢?如看到列表布局前有1 2 3 4 5 6 7等数字顺序. 类似带有序布局效果图 一.布局思维讲解   -   TOP 可能遇到这样的布局第一反应你会想到有序标签ol li的使用,但这里DIVCSS5告诉你因为浏览器版本比较多而不同浏览器对ol li有序列表默认自带的序号列表有着不同显示,这样容易引起浏览器兼容问题,所以遇到这样的有序排版布局,上海最好的性功能治疗医院告诉你,最简单是将