Day4:写前端项目(html+css+js)

news2024/12/26 14:54:39

xiao效果:

 页面布局

使用grid

<div class="grid-container">
  <div>
    <h1 class="uppercase ff-sans-cond letter-spacing-2 text-accent"> so, you want to travel to
    <span class="uppercase letter-spacing-2 fs-900 text-white ff-sans-normal">Space</span></h1>
    <p class="text-accent">Let’s face it; if you want to go to space, you might as well genuinely go to
    outer space and not hover kind of on the edge of it. Well sit back, and relax
    because we’ll give you a truly out of this world experience!</p>
  </div>
  <div>
    <a href="#" class="large-button uppercase ff-serif fs-600 text-dark bg-white">Explore</a>
  </div>
</div>

效果如下所示: 

 

.grid-container{
    display: grid;
    grid-template-columns: 2em repeat(2, minmax(0, 40rem)) 2em;
}
.grid-container > *:first-child {
    grid-column: 2;
    outline: 1px solid red;
}

.grid-container > *:last-child {
    grid-column: 3;
    outline: 1px solid yellow;

}

设置网格布局来布局整个结构,将网格分为4个,第一个孩子占第二个,最后一个孩子占第三个

.grid-container {
    display: grid;
    column-gap: var(--container-gap, 2rem);
    grid-template-columns: minmax(2rem, 1fr) repeat(2, minmax(0, 40rem)) 2rem;
}

给每个列之间制造gap

grid-template-columns: minmax(2rem, 1fr) repeat(2, minmax(0, 40rem)) minmax(2rem, 1fr);

fr是什么?

在 CSS Grid 网格布局中,引入了一种新的长度单位 fr(fraction)。它表示 Grid 布局中中剩余空间(leftover space)的一部分(fraction)。
一般来说 1fr 的意思是“100%的剩余空间”, .25fr 意味着“25%的剩余空间”。当时当 fr 大于 1 的时候,则会重新计算比例来分配。我们可以看下面的详细例子。

前端 - 介绍CSS中的长度单位fr_个人文章 - SegmentFault 思否

使用flex进行布局

<div class="container flex even-columns" style="max-width: 60rem">
    <div>
      <h1 class="text-accent fs-500 ff-sans-cond uppercase letter-spacing-1">So, you want to travel to
      <span class="d-block fs-900 ff-serif text-white">Space</span></h1>
      
      <p>Let’s face it; if you want to go to space, you might as well genuinely go to 
      outer space and not hover kind of on the edge of it. Well sit back, and relax 
      because we’ll give you a truly out of this world experience! </p>
    </div>
    <div style="display:flex; justify-content: flex-end; align-items: flex-start;">
      <a href="#" class="large-button uppercase ff-serif fs-600 text-dark bg-white">Explore</a>
    </div>
  </div>

.flex {
    display: flex;
    gap: var(--gap, 1rem);
}

.flex.even-columns > * {
    width: 100%;
    outline: 1px solid limegreen;
}
justify-content: flex-end; align-items: flex-start;

是啥?

  • justify-content— 控制主轴上所有项目的对齐方式。
  • align-items— 控制横轴上所有项目的对齐方式。

响应式设计

.grid-container{
    outline: 5px solid limegreen;
    display: grid;
    
}
@media (min-width: 45rem) {
    .grid-container{
        column-gap: var(--container-gap, 2rem);
        grid-template-columns: minmax(2rem, 1fr) repeat(2, minmax(0, 30rem)) minmax(2rem, 1fr);
    }
    .grid-container > *:first-child {
    grid-column: 2;
    outline: 1px solid red;
}

    .grid-container > *:last-child {
    grid-column: 3;
    outline: 1px solid yellow;

    }
}

 当屏幕大于等于45rem的时候,它会有columns的布局,会布局成四个columns

 

:root {
    /* colors */
    --clr-dark: 230 35% 7%;
    --clr-light: 231 77% 90%;
    --clr-white: 0 0% 100%;

    /* font-sizes */
    --fs-900: clamp(5rem, 8vw + 1rem, 9.375rem);
    --fs-800: 3.5rem;
    --fs-700: 1.5rem;
    --fs-600: 1rem;
    --fs-500: 1.75rem;
    --fs-400: 0.9375rem;
    --fs-300: 1rem;
    --fs-200: 0.875rem;

    /* font-families */
    --ff-serif: "Bellefair", serif;
    --ff-sans-cond: "Barlow Condensed", sans-serif;
    --ff-sans-normal: "Barlow", sans-serif;
}

@media (min-width: 35em) {
    :root {
        --fs-800: 5rem;
        --fs-700: 2.5rem;
        --fs-600: 1.5rem;
        --fs-400: 1rem;
    }
}

@media (min-width: 45em) {
    :root {
        /* font-sizes */
        --fs-800: 6.25rem;
        --fs-700: 3.5rem;
        --fs-600: 2rem;
        --fs-400: 1.125rem;
    }
}

因为整个页面会随着大小变化,字体也会进行变化。并且后面会大到overflow,所以需要调整字体大小

clamp():

CSS函数将中间值限制在定义的最小界限和最大界限之间的值范围内。该函数采用三个参数:最小值、首选值和最大允许值。

字体大小区别:(推荐使用rem,因为root改变,整个字体都可以改变)

px、em、rem区别介绍 | 菜鸟教程

解决这个问题:space 与前面的为一行

 

 解决方法:将它变为块元素

.d-block{
    display: block;
}

如何达成这种效果?

 首先text居中

将容器居中:place-content: center;

给他加个padding

.grid-container {
    border: 5px solid limegreen;
    display: grid;
    text-align: center;
    place-content: center;
    padding-inline: 1rem;
}
.grid-container * {
    max-width: 50ch;
}

@media (min-width: 45em) {
    .grid-container {
        column-gap: var(--container-gap, 2rem);
        grid-template-columns: minmax(2rem, 1fr) repeat(2, minmax(0, 30rem)) minmax(2rem, 1fr);
    }

    .grid-container > *:first-child {
        grid-column: 2;
        outline: 1px solid red;
    }

    .grid-container > *:last-child {
        grid-column: 3;
        outline: 1px solid yellow;
    }
}

 

 将整个页面的容器放在页面的底端

.grid-container--home {
        padding-bottom: max(6rem, 20vh);
        align-items: end;
    }

添加背景图片:随着屏幕大小而变化

效果:

 

body {
     #不让页面背景图片重复
    background-size: cover;
    background-position: bottom center;
}
/* home */
.home {
    background-image: url("../assets/home/background-home-mobile.jpg");
}

@media (min-width: 35rem) {
    .home {
        #固定页面具体位置
        background-position: center center;
        background-image: url("../assets/home/background-home-tablet.jpg");
    }
}

@media (min-width: 45rem) {
    .home {
        background-image: url("../assets/home/background-home-desktop.jpg");
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/25622.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【无线传感器】使用 Mamdani 模糊推理系统改进无线传感器网络路由和数据包传递(Matlab代码实现)

&#x1f468;‍&#x1f393;个人主页&#xff1a;研学社的博客 &#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜…

操作系统的奋斗(二)进程与线程

第二章 进程与线程2.1进程与线程2.1.1进程的概念、特征、状态与转换2.1.2进程的组织、控制、通信2.1.3进程和多线程模型2.2处理机调度2.2.1调度的概念、目标、实现2.2.2典型的调度算法2.2.3进程切换2.3同步与互斥2.3.1同步与互斥的基本概念2.3.2实现临界区互斥的基本办法2.3.3互…

泊松随机变量的分解与求和

1.泊松随机变量的分解 假设传感器发出的信号为0-1信号.发出1的概率为,发出0的概率为 ,并且和以前所发的信号独立.现在假设一定时间内发出信号的个数为泊松随机变量&#xff0c;其参数为, 可以证明在同一段时间内发出1的个数也是泊松随机变量&#xff0c;其参数为. 证明&#…

PTA题目 A除以B

真的是简单题哈 —— 给定两个绝对值不超过100的整数A和B&#xff0c;要求你按照“A/B商”的格式输出结果。 输入格式&#xff1a; 输入在第一行给出两个整数A和B&#xff08;−100≤A,B≤100&#xff09;&#xff0c;数字间以空格分隔。 输出格式&#xff1a; 在一行中输出…

Data-Efficient Backdoor 论文笔记

#论文笔记# 1. 论文信息 论文名称Data-Efficient Backdoor作者Pengfei Xia 中国科学技术大学会议/出版社IJCAI 2022pdf&#x1f4c4;在线pdf代码&#x1f4bb;pytorch概要&#xff1a;本文是 backdoor attack 中的数据加毒。不同于以往随机在干净数据中选择样本加毒的方法&am…

磁盘怎么删除分区,磁盘管理怎么删除分区

为了高效地利用磁盘分区&#xff0c;会删除部分磁盘分区&#xff0c;但是很多的用户都不知道应该怎么删除磁盘分区&#xff0c;所以&#xff0c;易我小编将讲解磁盘怎么删除分区。 一、为什么要删除磁盘分区 因为不同用户的磁盘分区管理需求不同&#xff0c;为了适应用户的具体…

spring boot yaml自定义配置传入代码

目录 一、在项目代码中&#xff0c;直接读取配置文件application.yml中的数据 二、通过yaml配置文件&#xff0c;给类注入数据 一、在项目代码中&#xff0c;直接读取配置文件application.yml中的数据 使用Value注解。 如&#xff1a; 在spring boot 中&#xff0c;applica…

Spring实战之容器、上下文、Bean的生命周期

一、Spring容器 在基于Spring的应用中&#xff0c;你的应用对象生存于Spring容器&#xff08;container&#xff09;中&#xff0c;Spring容器负责创建对象&#xff0c;装配它们&#xff0c;配置它们并管理它们的整个生命周期&#xff0c;从生存到死亡。&#xff08;在这里&am…

程序运行只是单单的编译吗?一文让你深入理解程序运行的过程

前言&#xff1a; 写了这么长时间的c语言代码&#xff0c;我们都没有想过为什么要写头文件吗&#xff0c;而程序执行的过程又是如何呢&#xff1f;只有编译吗 &#xff1f;要知道机器只能读懂二进制但我们所写的代码编译器是如何读懂的呢&#xff1f;这一篇文章看后一定能解决以…

数据结构之Trie树

Trie树&#xff1a; Tire树可以较为高效的存储和查找字符串集合。 存储方式&#xff1a; 首先Trie有一个根节点&#xff0c;我们按从前往后的顺序将字符串的每个位置上的字符存储到树的每一层中&#xff0c;这样我们存储多个字符串时就可以消除一部分冗余&#xff0c;在查询字…

期货开户后需要银期转账绑定

一、期货公司正规性 如何判断期货公司是否正规&#xff1f; 1、 中国证监会官网有公布所有正规期货公司&#xff08;一共150家&#xff09;名录的&#xff0c;我们可以直接参考证监会发布链接&#xff1a;期货公司名录 2、如果你懒得从名录中一个个找&#xff0c;也可以直接…

一款不错的SpringCloud 脚手架项目

文章目录 I 一款不错的SpringCloud 脚手架项目1.1 项目概述1.2 本地启动II. Swagger RESTful 风格的 Web 服务框架2.1 组成部分2.2 springfoxIII 相关辅助脚本3.1 pod 辅助脚本3.2 git 辅助脚本I 一款不错的SpringCloud 脚手架项目 1.1 项目概述 springboot+springcloud注册中心…

基于SpringBoot的电子招标投标管理系统

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SpringBoot 前端&#xff1a;HTML、Vue 数据库&#xff1a;MySQL5.7 数据库管理工具&#xff1a;Navicat 12 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否…

Android BottomSheetDialogFragment 使用详解,设置圆角、固定高度、默认全屏等

转载请标明出处&#xff1a;http://blog.csdn.net/zhaoyanjun6/article/details/127967304 本文出自【赵彦军的博客】 文章目录效果BottomSheetBottomSheetDialogBottomSheetDialogFragment圆角效果去掉背景蒙版设置蒙版透明度点击 dialog 外部区域&#xff0c;dialog 不消失禁…

STC51单片机37——定时器流水灯

// 12MHz晶振 #include "reg52.h" #include "intrins.h" #define time (65536-50000) // 单次定时50ms unsigned char cn; unsigned char temp; unsigned char dir; void main(void) { cn20; //20*50ms1s temp0x80; dir0; TMOD 0x…

Vue简单示例——weex

weex的生命周期&#xff1a; 因为我们的Weex和Vue是绑定在一起的&#xff0c;所以我们讨论关于生命周期时&#xff0c;说的实际上是在Weex中可以使用的Vuex的生命周期&#xff0c;也就是Weex对于Vue生命周期的支持&#xff0c;好消息&#xff0c;Weex支持大部分的Vue中的生命周…

基于Vue+ElementUI+MySQL+Express的学生管理系统(3)

3.搭建学生考试信息的前端页面 1.在E:\vue\shiyan9目录下用cmd打开命令窗口。输入命令vue init webpack score-manage&#xff0c;创建一个基于webpack模板的项目。 图15 创建一个新的vue的脚手架的项目 2.执行cd score-manage&#xff0c;进入目录包下。下载依赖包。命令如下…

Pytorch 图像增强 实现翻转裁剪色调等 附代码(全)

目录前言1. 裁剪1.1 中心裁剪1.2 随机裁剪1.3 随机尺寸裁剪2. 翻转2.1 水平翻转2.2 垂直翻转2.3 随机旋转3. 色调3.1 灰度变换3.2 色彩抖动3.3 随机翻转颜色3.4 随机调整锐度3.5 高斯模糊4. 边缘填充5. 仿射变换前言 下文中有使用到plt&#xff0c;不懂的可看我这篇文章&#…

doker中的Jenkins容器配置github

1、在Jenkins插件 管理中下载github plugin和ssh和git插件 2、在Jenkins->系统管理->系统配置->github下配置凭据认证&#xff0c;添加凭证页面类型选择secret text 3、添加凭证页面secret栏输入githu token&#xff0c;其他任意输入 4、github token获取&#xf…

FANUC机器人零点复归的报警原因分析和零点标定相关步骤

FANUC机器人零点复归的报警原因分析和零点标定相关步骤 FANUC机器人零点复归时需要将机器人的机械信息与位置信息同步,来定义机器人的物理位置。 机器人通过闭环伺服系统来控制机器人各运动轴,当用户通过示教器点动机器人时,经过主板分析此命令后,带动电机旋转,电机上的SP…