前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >CSS画圆、三角形、品字、骰子

CSS画圆、三角形、品字、骰子

作者头像
赤蓝紫
发布于 2023-01-05 08:48:35
发布于 2023-01-05 08:48:35
1.3K00
代码可运行
举报
文章被收录于专栏:clzclz
运行总次数:0
代码可运行

CSS画圆、三角形、品字、骰子

border-radius属性的值等于盒子高度的一半就行(当然,盒子得是正方形才能得到圆,否则便不是圆)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<style>
  .circle {
    width: 200px;
    height: 200px;
    border-radius: 50%;
    background-color: pink;
  }

  .box {
    width: 200px;
    height: 100px;
    border-radius: 50%;
    background-color: purple;
  }
</style>

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

三角形

原理:相邻边框均分

这是什么意思呢?

看下例子

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<style>
  div {
    box-sizing: border-box;
  }

  .triangle1 {
    display: inline-block;
    width: 100px;
    height: 100px;
    border-left-width: 20px;
    border-left-style: solid;
    border-left-color: blue;
    background-color: pink;
  }

  .triangle2 {
    display: inline-block;
    width: 100px;
    height: 100px;
    border-width: 20px;
    border-style: solid;
    border-left-color: blue;
    background-color: pink;
  }
</style>

<div class="triangle1"></div>
<div class="triangle2"></div>

可以知道,边框实际上应该是长方形或正方形的,但是第二个例子中,出现了梯形的边框,这就是因为有左边框,同时还有上下边框,但是位置是有限的,所以它们互相体谅,最后,每人拿一半。

那么,怎样才能用纯CSS画三角形呢?

首先,中间粉色的区域是一定要去掉的,所以让盒子没有宽高

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
.triangle {
  display: inline-block;
  border-width: 20px;
  border-style: solid;
  border-left-color: blue;
}

可以看到,三角形已经出来了,那么,设置边框的颜色为透明,然后,只让一边的边框有颜色,就能画出三角形

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
.triangle {
  display: inline-block;
  border-width: 20px;
  border-style: solid;
  border-color: transparent;
  border-left-color: blue;
}

满屏品字

上面一块使用 margin: 0 auto居中,下面两块要用 float inline-block控制不换行( inline-block可能还是会导致换行,因为可能会出现滚动条)

另外,需要满屏,所以上下应该各占50%,但是呢,默认的 html body高度为0,所以需要设置高度为 100%

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<style>
  html,
  body,
  div {
    margin: 0;
    padding: 0;
  }

  html,
  body {
    /* 让div盒子高度能使用百分比形式 */
    height: 100%;
  }

  .top {
    width: 50%;
    height: 50%;
    background-color: red;
    margin: 0 auto;
  }

  .bottom {
    width: 100%;
    height: 50%;
  }

  .left,
  .right {
    float: left;
    width: 50%;
    height: 100%;
  }

  .left {
    background-color: blue;
  }

  .right {
    background-color: purple;
  }
</style>

<div class="top"></div>
<div class="bottom">
  <div class="left"></div>
  <div class="right"></div>
</div>

骰子

主要是通过flex布局实现,flex布局的主要语法可查看本人写的另一篇(原本在个人博客上的,发到掘金上了)

一的情况比较简单,设置flex布局后,同时设置水平垂直居中即可。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<style>
    .box {
        display: flex;
        justify-content: center;	/* 实现水平居中 */
        align-items: center;		/* 实现垂直居中 */
        width: 90px;
        height: 90px;
        padding: 5px;
        background-color: pink;
    }

    .item {
        width: 30px;
        height: 30px;
        background-color: purple;
        border-radius: 50%;
    }
</style>


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

首先,通过 justify-content: space-between;,实现首元素在起点,尾元素在终点。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<style>
    .box {
        display: flex;
        width: 90px;
        height: 90px;
        padding: 5px;
        background-color: pink;
        /* 均匀排列每个元素。首个元素放置于起点,末尾元素放置于终点 */
        justify-content: space-between;
    }

    .item {
        width: 30%;
        height: 30%;
        background-color: purple;
        border-radius: 50%;
    }
</style>


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

然后,通过 align-self: flex-end;把尾元素单独拖下来

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
.item:nth-child(2) {
    align-self: flex-end;
}

三的做法和二类似,不同的是,三需要把第三个元素拖下来,而第二个元素应该在中间

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<style>
    .box {
        display: flex;
        width: 90px;
        height: 90px;
        padding: 5px;
        background-color: pink;
        justify-content: space-between;
    }

    .item {
        width: 30px;
        height: 30px;
        background-color: purple;
        border-radius: 50%;
    }

    .item:nth-child(2) {
        /* 单独控制子元素在侧轴上的排列方式 */
        align-self: center;
    }

    .item:nth-child(3) {
        align-self: flex-end;
    }
</style>


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

四的情况麻烦一点点。

首先,html的结构需要增加上下两个中盒子。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<div class="box">
    <div class="top">
        <div class="item"></div>
        <div class="item"></div>
    </div>
    <div class="bottom">
        <div class="item"></div>
        <div class="item"></div>
    </div>
</div>

然后,上下两个中盒子,分别要在大盒子的上下,所以大盒子需要设置主轴为垂直方向,并设置 justify-content: space-between;

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
.box {
    display: flex;
    width: 90px;
    height: 90px;
    padding: 5px;
    background-color: pink;
    /* 设置主轴为垂直方向 */
    flex-direction: column;
    justify-content: space-between;
}

最后,两个中盒子也得设置为 flex,因为它们的子元素也需要 justify-content: space-between;来实现,一人在左,一人在右。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
.top,
.bottom {
    display: flex;
    justify-content: space-between;
}

item盒子的样式直接拿上面的即可

五和四类似,需要再来一个中盒子,然后让这个中盒子单独居中局可

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<div class="box">
    <div class="top">
        <div class="item"></div>
        <div class="item"></div>
    </div>
    <div class="middle">
        <div class="item"></div>
    </div>
    <div class="bottom">
        <div class="item"></div>
        <div class="item"></div>
    </div>
</div>

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
.middle {
    align-self: center;
}

六和四一摸一样做法

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<div class="box">
    <div class="top">
        <div class="item"></div>
        <div class="item"></div>
        <div class="item"></div>
    </div>
    <div class="bottom">
        <div class="item"></div>
        <div class="item"></div>
        <div class="item"></div>
    </div>
</div>

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
.box {
     display: flex;
     width: 90px;
     height: 90px;
     padding: 5px;
     background-color: pink;
     flex-direction: column;
     justify-content: space-between;
 }

 .top,
 .bottom {
     display: flex;
     justify-content: space-between;
 }

 .item {
     width: 30px;
     height: 30px;
     background-color: purple;
     border-radius: 50%;
 }

 .top>.item:nth-child(2),
 .bottom>.item:nth-child(2) {
     /* 产生点间距,好看点 */
     margin: 0 1px;
 }

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-04-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
快速学习Freemarker-基本使用
FreeMarker(还有模板开发者)并不关心数据是如何计算的,FreeMarker 只是知道真实的数据是什么。模板能用的所有数据被包装成 data-model 数据模型
cwl_java
2020/02/11
9800
5 分钟,带你入门 FreeMarker 模板引擎!
最近不是打算带大家做一个代码生成项目嘛,项目的第一阶段就是先做一个本地的代码生成器。代码生成器的核心功能就是根据用户输入的选项参数来生成不同的代码文件。
程序员鱼皮
2023/12/06
1.9K1
5 分钟,带你入门 FreeMarker 模板引擎!
FreeMarker-网页静态化
网页静态化解决方案在实际开发中运用比较多,例如新闻网站,门户网站中的新闻频道或者是文章类的频道。
宋先生
2019/07/18
1.7K0
FreeMarker-网页静态化
Spring MVC 学习总结(七)——FreeMarker模板引擎与动态页面静态化
模板引擎可以让程序实现界面与数据分离,业务代码与逻辑代码的分离,这就提升了开发效率,良好的设计也使得代码复用变得更加容易。一般的模板引擎都包含一个模板解析器和一套标记语言,好的模板引擎有简洁的语法规则、强大的功能、高效的渲染效率、详尽的帮助说明与不断的更新与维护。常见的前端模板引擎有:
张果
2022/05/09
4K0
Spring MVC 学习总结(七)——FreeMarker模板引擎与动态页面静态化
freemarker的使用
一:freemarker是什么? freemarker是一个模板引擎,基于定义的模板和数据生成对应的文本(HTML,xml,java等),是一个生成文本的工具。 二:freemarker的使用方法 (1)在工程中引入freemarker相关的依赖 <dependency> <groupId>org.freemarker</groupId> <artifactId>freemarker</artifactId> <version>2.3.23</version> </dependency> (2)
用户2146856
2018/05/18
8210
低代码探索:freemarker的模板和表达式
在低代码探索:Java 模板引擎技术 中,我们介绍了freemarker的概念和简单使用示例。本篇会详细介绍一下freemarker中的表达式,这在使用时很重要。我们通过模板定义要生成的页面框架,通过表达式来实现参数占位/替换,输入变量的首字母大/小写转换,以及for循环遍历等等。通过模板与表达式的配合,生成所需的页面/代码文件。
程序员架构进阶
2022/12/01
1.8K0
低代码探索:freemarker的模板和表达式
Spring Boot 最佳实践(三)模板引擎FreeMarker集成
FreeMarker是一款免费的Java模板引擎,是一种基于模板和数据生成文本(HMLT、电子邮件、配置文件、源代码等)的工具,它不是面向最终用户的,而是一款程序员使用的组件。
磊哥
2018/09/27
3K0
Spring Boot 最佳实践(三)模板引擎FreeMarker集成
模板引擎 FreeMarker
freemarker 是一款模板引擎,即基于模板和要改变的数据用来生成输出文本(HTML页面、电子邮件、配置文件、源码等)的通用工具。它并非面向最终用户,而是一个 java 类库。
京剧猫
2023/03/04
1.8K0
模板引擎 FreeMarker
模板引擎:第一章:FreeMarker
FreeMarker是一款模板引擎:即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页、电子邮件、配置文件、源代码等)的通用工具。它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所开发产品的组件。FreeMarker是免费的,基于Apache许可证2.0版本发布。其模板编写为FreeMarker Template Language(FTL),属于简单、专用的语言。需要准备数据在真实编程语言中来显示,比如数据库查询和业务运算, 之后模板显示已经准备好的数据。在模板中,主要用于如何展现数据, 而在模板之外注意于要展示什么数据。
Java廖志伟
2022/09/28
8600
模板引擎:第一章:FreeMarker
freemark页面静态化
如果在模板中使用了变量但是在代码中没有对变量赋值,那么运行生成时会抛出异常 可以使用"??"判断某变量是否存在
JokerDJ
2023/11/27
2460
freemark页面静态化
FreeMarker模板开发指南知识点梳理
freemarker是什么? 有什么用? 怎么用? (问得好,这些都是我想知道的问题) freemarker是什么?   FreeMarker 是一款 模板引擎: 即一种基于模板和要改变的数据, 并用
JackieZheng
2018/01/16
1.5K0
FreeMarker模板开发指南知识点梳理
FreeMarker与JSP 2.0 + JSTL组合进行比较
FreeMarker与JSP 2.0 + JSTL组合进行比较。 FreeMarker优点: FreeMarker不受Servlet或网络/ Web的限制; 它只是一个类库通过将模板与Java对象(数据模型)合并来生成文本输出。您可以随时随地执行模板; 没有HTTP请求转发或类似的技巧,根本不需要Servlet环境。因此,您可以轻松地将其集成到任何系统中。 更简洁的语法 考虑这个JSP(假设 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jst
cfs
2018/03/08
5.5K0
freemarker-number-formatter
我们使用mavel来管理我们的包依赖,因此,只需在pom.xml中配置包依赖即可:
zhangheng
2020/04/29
1K0
freemarker
下面仅供参考 请见官方网址http://freemarker.foofun.cn/
java小黑
2023/04/24
1.2K0
快速生成 CRUD 应用的自动化工具及实践
本篇文章将聚焦于快速生成 CRUD(创建、读取、更新、删除)应用的工具,通过代码自动化提升开发效率,减少重复劳动。我们将讨论一种基于 Java 的自动化工具实现,展示其具体使用方式及可运行的 Demo 示例。
网罗开发
2024/12/26
1580
快速生成 CRUD 应用的自动化工具及实践
重学SpringBoot3-集成FreeMarker
FreeMarker 是一个用于生成文本输出(如 HTML 网页、电子邮件、配置文件、源代码等)的 Java 府模板引擎。它遵循 MVC 模式,将业务逻辑和表现层分离。FreeMarker 模板使用 FreeMarker Template Language (FTL) 编写,这是一种简单、专用的语言。在 Spring Boot 3 中集成 FreeMarker 作为模板引擎是一个简单直接的过程,Spring Boot 的自动配置功能大大简化了配置工作。以下是将 FreeMarker 集成到 Spring Boot 应用的基本步骤:
CoderJia
2024/10/18
1560
重学SpringBoot3-集成FreeMarker
java Freemarker 模版引擎工具类
package org.fh.util; import java.io.BufferedWriter; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStreamWriter; import java.io.PrintWriter; import java.io.Writer; import java.util.Locale; import jav
FHAdmin
2022/01/07
6390
逃逸安全的模板沙箱(一)——FreeMarker(上)
作者:DEADF1SH_CAT@知道创宇404实验室 时间:2020年8月24日
Seebug漏洞平台
2020/08/26
2.4K0
逃逸安全的模板沙箱(一)——FreeMarker(上)
FreeMarket模板引擎快速入门【面试+工作】
FreeMarket模板引擎快速入门【面试+工作】 FreeMarker 快速入门 FreeMarker是一个很值得去学习的模版引擎。它是基于模板文件生成其他文本的通用工具。本章内容通过如何使用FreeMarker生成Html web 页面 和 代码自动生成工具来快速了解FreeMarker。 1 简介 FreeMarker是一款用java语言编写的模版引擎,它虽然不是web应用框架,但它很合适作为web应用框架的一个组件。 特点: 轻量级模版引擎,不需要Servlet环境就可以很轻松的嵌入到应用程序中
Java帮帮
2018/06/11
1.1K0
模板引擎:第二章:Thymeleaf
Thymeleaf 是一个跟 Velocity、FreeMarker 类似的模板引擎,它可以完全替代 JSP。
Java廖志伟
2022/09/28
3610
模板引擎:第二章:Thymeleaf
相关推荐
快速学习Freemarker-基本使用
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验