返回顶部
首页 > 资讯 > 前端开发 > JavaScript >怎么用CSS在线字体和D3实现Google的信息图
  • 688
分享到

怎么用CSS在线字体和D3实现Google的信息图

2024-04-02 19:04:59 688人浏览 泡泡鱼
摘要

这篇文章给大家分享的是有关怎么用CSS在线字体和D3实现Google的信息图的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。   代码解读   定义dom,只有1个空元素,其中

这篇文章给大家分享的是有关怎么用CSS在线字体和D3实现Google的信息图的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

  代码解读

  定义dom,只有1个空元素,其中不包含任何文本:

  <divclass="logo"></div>

  引入字体文件,ProductSans是Google专门为品牌推广创建的无衬线字体:

  @importurl("https://fonts.googleapis.com/css?family=Product+Sans");

  居中显示:

  body{

  margin:0;

  height:100vh;

  display:flex;

  align-items:center;

  justify-content:center;

  }

  用伪元素制作logo,注意content的内容不是"Google",而是"google_logo":

  .logo::before{

  content:'google_logo';

  font-size:10vw;

  }

  设置字体,采用刚才引入的在线字体,刚才页面上的"google_logo"文字被替换成了单色的logo图案:

  body{

  font-family:'productsans';

  }

  定义颜色变量:

  :root{

  --blue:#4285f4;

  --red:#ea4335;

  --yellow:#fbbc05;

  --green:#34a853;

  }

  设置文字遮罩效果,为文字上色:

  .logo::before{

  background-image:linear-gradient(

  toright,

  var(--blue)0%,var(--blue)26.5%,

  var(--red)26.5%,var(--red)43.5%,

  var(--yellow)43.5%,var(--yellow)61.5%,

  var(--blue)61.5%,var(--blue)78.5%,

  var(--green)78.5%,var(--green)84.5%,

  var(--red)84.5%,var(--red)100%

  );

  -WEBkit-background-clip:text;

  -webkit-text-fill-color:transparent;

  }

  至此,Googlelogo制作完成,接下来制作googol信息,说明Google的名字来源于含义是1后面跟100个零的大数的单词googol。

  在dom中添加一行说明文本和容纳数字的容器,容器中包含5个数字,在每个数字的内联样式中指定了颜色变量:

  <pclass="desc">ThenameofGoogleoriginatedfromamisspellingoftheWord"googol",thenumber1followedby100zeros.</p>

  <pclass="zeros">

  <spanstyle="--c:var(--blue);">1</span>

  <spanstyle="--c:var(--red);">0</span>

  <spanstyle="--c:var(--yellow);">0</span>

  <spanstyle="--c:var(--blue);">0</span>

  <spanstyle="--c:var(--green);">0</span>

  </p>

  设置说明文本的样式:

  .desc{

  font-size:1.5vw;

  font-weight:nORMal;

  color:dimgray;

  margin-top:2em;

  }

  设置数字的样式:

  .zeros{

  font-size:3vw;

  font-weight:bold;

  margin-top:0.2em;

  text-align:center;

  width:25.5em;

  word-wrap:break-word;

  }

  为数字上色:

  .zerosspan{

  color:var(--c);

  }

  微调数字"1"的边距,让它不要和后面的"0"靠得太紧:

  .zerosspan:nth-child(1){

  margin-right:0.2em;

  }

  至此,静态布局完成,接下来用d3批量处理数字。

  引入d3库,并删除掉dom中.zeros的数字子元素:

  <scriptsrc="Https://d3js.org/d3.v5.min.js"></script>

  最终我们会在页面上显示100个0,每个0的颜色都不同,并且为了美观,相邻数字的颜色也要不同。

  所以,先定义一个获取颜色的函数,它可以从Googlelogo配色的4种颜色中取任意一个颜色,并且有一个表示被排除颜色的参数,当指定的此参数时,就从4个可选的颜色中去掉这个颜色,然后从剩下的3个颜色中随机取一个颜色:

  functiongetColor(excludedColor){

  letcolors=newSet(['blue','red','yellow','green'])

  colors.delete(excludedColor)

  returnArray.from(colors)[Math.floor(d3.randomUniform(0,colors.size)())]

  }

  然后,定义2个常量,ZEROS是存储100个0的数组,ONE是存储数字1的对象,它有2个属性,number表示它的数值是1,color表示它的颜色是蓝色:

  constZEROS=d3.range(100).map(x=>0)

  constONE={number:1,color:'blue'}

  接下来,通过用reduce函数遍历ZEROS数组,返回一个新的数组numbers,它有101个元素(1以及跟随它的100个0),每个元素都是1个包含number和color属性的对象:

  letnumbers=ZEROS.reduce(function(numberObjects,d){

  numberObjects.push({

  number:d,

  color:getColor(numberObjects[numberObjects.length-1].color)

  })

  returnnumberObjects

  },[ONE])

  然后,以numbers为数据源,用d3批量创建出dom元素,并且把颜色信息写在行内样式中:

  d3.select('.zeros')

  .selectAll('span')

  .data(numberObjects)

  .enter()

  .append('span')

  .style('--c',(d)=>`var(--${d.color})`)

  .text((d)=>d.number)

  最后,微调一下内容的边距,使整个内容居中:

  .logo{

  margin-top:-10vh;

  }

怎么用CSS在线字体和D3实现Google的信息图怎么用CSS在线字体和D3实现Google的信息图

感谢各位的阅读!关于“怎么用CSS在线字体和D3实现Google的信息图”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

--结束END--

本文标题: 怎么用CSS在线字体和D3实现Google的信息图

本文链接: https://lsjlt.com/news/89120.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 怎么用CSS在线字体和D3实现Google的信息图
    这篇文章给大家分享的是有关怎么用CSS在线字体和D3实现Google的信息图的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。   代码解读   定义dom,只有1个空元素,其中...
    99+
    2024-04-02
  • 怎么用CSS和D3实现一组彩灯
    小编给大家分享一下怎么用CSS和D3实现一组彩灯,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!   代码解读   定义dom...
    99+
    2024-04-02
  • 怎么用纯CSS实现iPhone价格信息图
    小编给大家分享一下怎么用纯CSS实现iPhone价格信息图,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!   &nb...
    99+
    2024-04-02
  • CSS和D3怎么实现用文字组成的心形动画效果
    小编给大家分享一下CSS和D3怎么实现用文字组成的心形动画效果,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!   代码解读 ...
    99+
    2024-04-02
  • 在线使用iconfont字体图标的简单实现
    目录使用准备三种使用方式介绍unicode引用font-class引用symbol引用在线使用点击生成代码完整使用代码vue项目(本地)使用iconfont字体图标 vue中手动封装...
    99+
    2024-04-02
  • css怎么实现字体加横线效果
    本文小编为大家详细介绍“css怎么实现字体加横线效果”,内容详细,步骤清晰,细节处理妥当,希望这篇“css怎么实现字体加横线效果”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。首先,在页面中创建两个p标签,并添加文...
    99+
    2023-07-04
  • CSS怎么实现精灵图与字体图标
    这篇文章将为大家详细讲解有关CSS怎么实现精灵图与字体图标,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。精灵图:在以前,每个图片资源都是独立的一张张图片,浏览器访问网站中的不同网页时是重复获取这一张张图片...
    99+
    2023-06-08
  • 怎么使用CSS和D3实现一个舞动的画面
    小编给大家分享一下怎么使用CSS和D3实现一个舞动的画面,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!   代码解读   定...
    99+
    2024-04-02
  • 怎么用CSS和D3实现小鱼游动的交互动画
    小编给大家分享一下怎么用CSS和D3实现小鱼游动的交互动画,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!   代码解读   定义dom,容器中包含的子元素分别代表鱼的身体、眼睛、背鳍和...
    99+
    2024-04-02
  • 怎么使用CSS和D3实现黑白交叠的动画效果
    这篇文章将为大家详细讲解有关怎么使用CSS和D3实现黑白交叠的动画效果,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。   代码解读   定义dom,容器中包含3个子元...
    99+
    2024-04-02
  • 使用CSS怎么实现一个彩色字体
    这篇文章将为大家详细讲解有关使用CSS怎么实现一个彩色字体,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。初识彩色字体在我们所熟知的传统字体中,字体文件本身仅仅描述了字体的外形特征,这些特征一...
    99+
    2023-06-08
  • 怎么在Android中利用google实现一个消息通知功能
    怎么在Android中利用google实现一个消息通知功能?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。 定义一个派生于WakefulBroadcastReceiver的类pu...
    99+
    2023-05-31
    android google roi
  • CSS怎么实现控制文字在一条线中间
    这篇文章主要讲解了“CSS怎么实现控制文字在一条线中间”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“CSS怎么实现控制文字在一条线中间”吧!这里用CSS控制...
    99+
    2024-04-02
  • Android 微信6.1 tab栏图标和字体颜色渐变的实现
    相信大家都见到了微信图标颜色渐变的过程,是不是感觉很牛逼?不得不说微信团队确实是很厉害的团队,不管是从设计还是开发人员。 今天我带大家来看看,微信 tab 栏图标和字体颜色渐变...
    99+
    2022-06-06
    字体颜色 字体 tab Android
  • css文字上的横线是怎么实现的
    本篇文章给大家分享的是有关css文字上的横线是怎么实现的,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。本教程操作环境:windows10系统、...
    99+
    2024-04-02
  • 怎么用css实现图片右边有字
    小编给大家分享一下怎么用css实现图片右边有字,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!用css实现图片右边有字的方法:首先创建一个HTML示例文件;然后通过...
    99+
    2023-06-06
  • CSS的字体单位px,em,rem和%怎么用
    这篇文章主要介绍“CSS的字体单位px,em,rem和%怎么用”,在日常操作中,相信很多人在CSS的字体单位px,em,rem和%怎么用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大...
    99+
    2024-04-02
  • 怎么使用HTML和CSS在图像上添加文字
    这篇文章将为大家详细讲解有关怎么使用HTML和CSS在图像上添加文字,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。   1、用HTML和CSS表达的好处   不是“图...
    99+
    2024-04-02
  • 怎么用CSS实现让文字半透明显示在图片上
    本篇内容主要讲解“怎么用CSS实现让文字半透明显示在图片上”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用CSS实现让文字半透明显示在图片上”吧!代码如下:...
    99+
    2024-04-02
  • 怎么用CSS和JavaScript实现渲染图片
    这篇文章主要介绍了怎么用CSS和JavaScript实现渲染图片的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么用CSS和JavaScript实现渲染图片文章都会有所收获,下...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作