前往小程序,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 删除。

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
CSS 使用 Flex 布局来制作一个骰子
我在上一篇博文 CSS 布局_2 Flex弹性盒中,对 Flex 弹性盒有着详细的介绍,在这里,我们使用 Flex 弹性盒布局,来实现骰子的布局,一个面可以设置 9 个点数,但在这里我只列出了点数 1-6 的布局方式,剩余点数的布局大家可以自行尝试
Nian糕
2018/08/21
3.9K0
CSS 使用 Flex 布局来制作一个骰子
CSS 入门指南(二):盒模型 & 浮动弹性布局 & CSS 特性
这个盒子由这几个部分构成 : 边框 border、 内容 content、 内边距 padding、 外边距 margin
IsLand1314
2025/03/30
1210
CSS 入门指南(二):盒模型 & 浮动弹性布局 & CSS 特性
【前端基础篇】CSS基础速通万字介绍(下篇)
以及在看本篇之前需要有HTML的基础,详情请见【前端基础篇】HTML零基础速通,同时还有【前端基础篇】CSS基础速通万字介绍(上篇)
半截诗
2024/10/09
1120
【前端基础篇】CSS基础速通万字介绍(下篇)
【海贼王航海日志:前端技术探索】CSS你了解多少?(三)
可以看到,width、height是500 * 250,而最终整个盒子大小是520 * 270。边框10个像素相当于扩大了大小。
枫叶丹
2024/08/17
980
【海贼王航海日志:前端技术探索】CSS你了解多少?(三)
万字总结 CSS 布局
本文总结了主流的几种 CSS 的布局方法,无论你是一个想要学习 CSS 布局的新手,还是一个比较有经验但想要进一步巩固与了解最新CSS布局知识的前端开发者,这篇指南都能帮你全面了解如今CSS布局发展的现状。
用户8921923
2022/10/24
5.8K0
万字总结 CSS 布局
十几个CSS高级常见技巧汇总(虚线框、三角形、优惠券卡券、滚动条、多行溢出...)
来自:CSDN ,作者:前端一零仙人 链接:https://blog.csdn.net/weixin_41556756/article/details/114196921 「列举一下效果」 设置input的placeholder的字体样式 单行和多行文本超出省略号 负边距使用技巧 定位同时设置方位情况 相邻兄弟选择器之常用场景 outline属性的妙用技巧 隐藏滚动条或更改滚动条样式 纯CSS绘制三角形 虚线框绘制技巧 卡券效果制作 隐藏文本的常用两种方法 表格边框合并 「1-1. 设置input 的pl
微芒不朽
2022/09/13
6370
CSS魔法堂:Flex布局
 Flex是Flexible Box的缩写,就是「弹性布局」。从2012年已经面世,但由于工作环境的原因一直没有详细了解。最近工作忙到头晕脑胀,是要学点新东西刺激一下大脑,打打鸡血。
^_^肥仔John
2018/06/21
5590
【CSS进阶】巧用伪元素before和after制作绚丽效果
原创:叫我詹躲躲 来源:掘金 链接:巧用伪元素before和after制作绚丽效果
微芒不朽
2022/09/06
1.7K0
【CSS进阶】巧用伪元素before和after制作绚丽效果
55 个提高你 CSS 开发效率的必备片段
这篇文章会记录我们平时常用到的 CSS 片段,使用这些 CSS 可以帮助我们解决许多实际项目问题中遇到的,墙裂建议点赞收藏再看,方便日后查找? 清除浮动 浮动给我们的代码带来的麻烦,想必不需要多说,我
wscats
2020/06/06
1.4K0
CSS 实现卡片以及鼠标移入特效
首先,我们通过 Vue 的模板语法创建一个简单的卡片组件。在这里,我们使用了Element Plus的滚动条组件(el-scrollbar)来包裹我们的卡片。
訾博ZiBo
2025/01/06
1340
CSS 实现卡片以及鼠标移入特效
CSS 布局_2 Flex弹性盒
弹性盒,是一种布局方式,当页面需要适应不同的屏幕大小以及设备类型时,它依然能确保元素拥有更恰当的排布行为,弹性盒属于 CSS 3 部分,IE9 以下不支持,现代浏览器指的就是 IE9 及以上的浏览器
Nian糕
2018/08/21
1.5K0
CSS 布局_2 Flex弹性盒
Day13:H5+JS+C3
BFC是Block formatting context的缩写,表示“块级格式化上下文”。 设置BFC的元素,是一个独立的渲染区域,只有Block-level box参与,它规定了内部的 Block-level Box如何布局(与该区域外部无关)。
达达前端
2019/07/15
7670
Day13:H5+JS+C3
【CSS3——页面布局】画一只考拉(蓝桥杯真题-2341)【合集】
这段 HTML 代码构建了页面的基本结构,为绘制考拉提供了元素容器。主要通过嵌套的 <div> 元素来划分不同的部分,每个部分都有对应的类名,方便在 CSS 中进行样式设置。
Rossy Yan
2025/02/06
870
【CSS3——页面布局】画一只考拉(蓝桥杯真题-2341)【合集】
css3 flex弹性布局详解
2009年,W3C 提出了一种新的方案----Flex 布局,可以简便、完整、响应式地实现各种页面布局。目前,它已经得到了所有浏览器的支持,这意味着,现在就能很安全地使用这项功能。
忆愿
2024/07/30
2050
css3 flex弹性布局详解
148道 CSS 与 JavaScript 基础面试题
本篇文章主要分享 CSS 与 JavaScript 基础面试题。CSS 和 JavaScript 都是前端基础知识,是前端学习中一定要学的内容,也是前端面试中必不可少的内容。
前端小tips
2021/12/12
1.2K0
148道 CSS 与 JavaScript 基础面试题
【CSS】378- [译]44个 CSS 精选知识点
一个周五的晚上,闲来无事整理下自己的 github(经常做收藏党),今天打算都过一遍,发现一个 star很高的项目,里面有大量的 CSS 片段,而且标题很诱人,然后又花了将近1个小时从头到尾过了一遍,其中一些是我们常用的一些知识点,另外也包含一些比较新的属性的应用,知识点挺多的,为了让大家看起来更方便些,然后又花了点(很长很长)时间翻译成中文。
pingan8787
2019/10/15
5.5K0
【CSS】378- [译]44个 CSS 精选知识点
CSS&HTML面经专题——(三)CSS定位/盒模型/经典布局/浮动布局与BFC
position:static | relative | absolute | fixed | center | page | sticky
玖柒的小窝
2021/10/26
2K0
CSS&HTML面经专题——(三)CSS定位/盒模型/经典布局/浮动布局与BFC
CSS Flex弹性布局详解! (常用的12个属性)
这期是我陆陆续续花了几个小时的时间为大家整理的Flex 弹性布局方法,主要讲了Flex布局的12个常见属性,以及文章最后的一个简单的小案例及其答案,希望对大家有帮助。
用户9999906
2022/09/26
15.2K0
CSS八种让人眼前一亮的HOVER效果
巧用伪元素:before、:after等,让你的页面按钮眼前一亮。原文链接:8 amazing HTML button hover effects, that will make your website memorable。更多内容:github.com/reng99/blog…
Jimmy_is_jimmy
2020/10/15
8180
掌握这些CSS知识点,Coding如飞!
整理了一些在CSS(层叠样式表)中的知识点,或许你曾看过一些什么“万字总结”、“面试必看”,但还是希望更多同学能够沉下心来学习,不仅仅满足于停留在“API工程师”的层面,多从CSS约定的规则去解释现象。
小东同学
2022/07/29
1K0
掌握这些CSS知识点,Coding如飞!
相关推荐
CSS 使用 Flex 布局来制作一个骰子
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验