2024-08-19



/* 设置默认样式 */
.content {
  background-color: #f9f9f9;
  padding: 20px;
  font-size: 16px;
}
 
/* 当屏幕宽度小于或等于600px时,修改.content的样式 */
@media screen and (max-width: 600px) {
  .content {
    background-color: #ddd;
    font-size: 14px;
  }
}
 
/* 当屏幕宽度在400px到600px之间时,修改.content的样式 */
@media screen and (min-width: 400px) and (max-width: 600px) {
  .content {
    background-color: #bbb;
    padding: 10px;
  }
}
 
/* 当屏幕宽度小于400px时,修改.content的样式 */
@media screen and (max-width: 400px) {
  .content {
    background-color: #999;
    padding: 5px;
  }
}

这段代码定义了一个.content类,并使用媒体查询定义了在不同屏幕宽度下该类应用的不同样式。这是响应式设计的一个基本示例,可以根据实际需求进行扩展和应用。

2024-08-19

在HTML中,<table>标签用于创建表格布局。以下是一个简单的HTML表格示例,使用了HTML、CSS和JavaScript(简称H5+CSS3+JS):




<!DOCTYPE html>
<html>
<head>
<style>
  table, th, td {
    border: 1px solid black;
    border-collapse: collapse;
  }
  th, td {
    padding: 5px;
    text-align: left;
  }
</style>
</head>
<body>
 
<h2>HTML Table</h2>
 
<table style="width:100%">
  <tr>
    <th>Firstname</th>
    <th>Lastname</th>
    <th>Age</th>
  </tr>
  <tr>
    <td>John</td>
    <td>Doe</td>
    <td>30</td>
  </tr>
  <tr>
    <td>Jane</td>
    <td>Smith</td>
    <td>25</td>
  </tr>
</table>
 
</body>
</html>

这段代码创建了一个具有标题行和两行数据的表格。CSS用于设置表格的样式,包括边框、内边距和文本对齐方式。这个示例展示了如何使用HTML创建表格结构,并通过CSS进行样式化,这是学习Web开发的基础知识。

2024-08-19

CSS3 提供了多个新属性来增强样式表的功能,包括边框圆角(border-radius),文字阴影(text-shadow),以及盒子阴影(box-shadow)。

  1. 边框圆角(border-radius):



.box {
  border: 2px solid #000;
  border-radius: 10px; /* 可以是像素值、百分比或者是像素值与百分比的组合 */
}
  1. 文字阴影(text-shadow):



.text {
  text-shadow: 2px 2px 2px #000; /* 水平偏移 垂直偏移 模糊半径 颜色 */
}
  1. 盒子阴影(box-shadow):



.box {
  box-shadow: 5px 5px 5px #000; /* 水平偏移 垂直偏移 模糊半径 颜色 */
}

CSS3 的这些新特性让页面设计师和开发者能创建更加生动和复杂的页面效果。

2024-08-19



/* 定义一个基本的HTML元素,如div或span,并应用2D转换 */
.element {
  width: 100px;
  height: 100px;
  background-color: red;
  /* 应用2D转换 - 平移 */
  transform: translate(50%, 50%);
  /* 设置动画过渡效果,使转换更平滑 */
  transition: transform 0.5s ease-in-out;
}
 
/* 鼠标悬停时改变转换,触发过渡动画 */
.element:hover {
  transform: translate(100%, 100%);
}

这段代码定义了一个具有红色背景的HTML元素,并使用CSS3的2D转换功能将其平移。当鼠标悬停在该元素上时,它将被转换到右上角。transition属性确保转换会有一个平滑的过渡效果。

2024-08-19



.container {
  display: flex; /* 定义弹性容器 */
  flex-wrap: wrap; /* 允许换行 */
  justify-content: space-between; /* 子元素间隔均匀分布 */
}
 
.item {
  flex-basis: 48%; /* 默认基础宽度 */
  margin: 0.5%; /* 子元素外边距 */
  min-width: 280px; /* 最小宽度,防止过度缩小 */
}
 
/* 媒体查询:根据屏幕宽度调整布局 */
@media (max-width: 600px) {
  .item {
    flex-basis: 100%; /* 子元素宽度自适应 */
  }
}

这段代码使用了CSS3的弹性布局(flexbox)来创建一个响应式的布局系统。.container 是一个弹性容器,其中的 .item 子元素可以根据屏幕宽度的变化而改变其宽度,从而实现自适应布局。同时,媒体查询(media query)用于定义在屏幕宽度小于600px时如何调整布局,使得子元素宽度占满容器宽度。

2024-08-19

uni-app中使用Vue2实现一个简单的滑动删除效果,可以通过监听触摸事件来实现。以下是一个简单的示例:




<template>
  <view class="container">
    <view
      class="item"
      v-for="(item, index) in list"
      :key="index"
      @touchstart="start"
      @touchmove="move"
      @touchend="end"
      :data-index="index"
      :class="{ 'item-active': activeIndex === index }"
    >
      {{ item }}
      <view class="delete" v-if="activeIndex === index">删除</view>
    </view>
  </view>
</template>
 
<script>
export default {
  data() {
    return {
      list: ['Item 1', 'Item 2', 'Item 3'],
      startX: 0,
      activeIndex: -1,
    };
  },
  methods: {
    start(event) {
      this.startX = event.touches[0].clientX;
    },
    move(event) {
      const index = event.currentTarget.dataset.index;
      const moveX = event.touches[0].clientX;
      const distance = moveX - this.startX;
      if (distance > 0) {
        this.activeIndex = index;
      }
    },
    end() {
      this.activeIndex = -1;
    },
  },
};
</script>
 
<style>
.container {
  display: flex;
  flex-direction: column;
}
 
.item {
  position: relative;
  height: 50px;
  line-height: 50px;
  width: 100%;
  border: 1px solid #ccc;
  overflow: hidden;
  transition: transform 0.3s;
}
 
.item-active {
  transform: translateX(-100%);
}
 
.delete {
  position: absolute;
  right: 0;
  top: 0;
  height: 100%;
  width: 100px;
  background-color: red;
  text-align: center;
  line-height: 50px;
  color: #fff;
}
</style>

在这个例子中,每个列表项都有触摸事件监听,当用户滑动时,记录开始滑动的位置,并在移动时计算滑动的距离。如果是向右滑动,那么设置当前滑动的项的索引,并通过添加item-active类来显示删除按钮。当滑动结束或触发touchend事件时,重置activeIndex。这里使用了transform进行滑动效果的实现,并通过transition属性添加了滑动的动画效果。

2024-08-19

在CSS3中,我们可以使用transform属性的scale函数来对元素进行缩放。scale函数接受一个或两个参数,当只有一个参数时,它将对元素进行等比例缩放。两个参数时,第一个参数表示水平方向的缩放比例,第二个参数表示垂直方向的缩放比例。

解法1:使用 scale 设置一个参数,实现元素的等比例缩放。

HTML代码:




<div class="box1"></div>

CSS代码:




.box1 {
  width: 100px;
  height: 100px;
  background-color: red;
  transform: scale(0.5);  /* 水平和垂直方向等比例缩放0.5倍 */
}

解法2:使用 scale 设置两个参数,实现元素的不等比例缩放。

HTML代码:




<div class="box2"></div>

CSS代码:




.box2 {
  width: 100px;
  height: 100px;
  background-color: blue;
  transform: scale(0.5, 2);  /* 水平方向缩放0.5倍,垂直方向缩放2倍 */
}

以上两种方法,第一种方法实现了元素在水平和垂直方向的等比例缩放,第二种方法实现了元素在水平方向和垂直方向的不等比例缩放。

2024-08-19

HTML5 引入了大量新的语义化标签,例如 <header>, <nav>, <section>, <article>, <aside>, <footer> 等,它们有助于开发者编写更清晰的代码,有利于搜索引擎的搜索和更好的用户体验。

以下是一个简单的 HTML5 页面结构示例:




<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        /* CSS3 样式代码 */
        body {
            font-family: Arial, sans-serif;
        }
        header, footer {
            background-color: #ddd;
            padding: 10px 0;
            text-align: center;
        }
        nav {
            background-color: #bbb;
            padding: 5px;
        }
        section {
            background-color: #eee;
            padding: 15px;
            margin-top: 10px;
        }
    </style>
</head>
<body>
    <header>
        <h1>我的网站</h1>
    </header>
    <nav>
        <ul>
            <li><a href="#">主页</a></li>
            <li><a href="#">关于</a></li>
            <li><a href="#">服务</a></li>
        </ul>
    </nav>
    <section>
        <h2>最新文章</h2>
        <p>这里是一些文章内容...</p>
    </section>
    <footer>
        <p>版权所有 &copy; 2023</p>
    </footer>
    <script>
        // JavaScript 代码
    </script>
</body>
</html>

这个示例展示了如何使用 HTML5 的语义化标签来构建一个简单的网站结构,并通过内联的 CSS3 样式和 JavaScript 实现一些基本的交互功能。

2024-08-19

HTML5 基础:




<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <header>页面头部</header>
    <nav>导航栏</nav>
    <section>
        <article>
            <h1>文章标题</h1>
            <p>这里是文章内容...</p>
        </article>
    </section>
    <aside>侧边栏</aside>
    <footer>页面底部</footer>
</body>
</html>

CSS3 应用:




/* CSS 文件 */
body {
    background-color: #f3f3f3;
}
header, footer {
    background-color: #444;
    color: white;
    text-align: center;
    padding: 5px 0;
}
nav, aside {
    background-color: #f5f5f5;
    color: #333;
    padding: 10px;
}
section article {
    background-color: white;
    padding: 15px;
    margin-bottom: 10px;
}
section article h1 {
    color: #333;
    margin-bottom: 5px;
}

JavaScript 动画:




// JavaScript 文件
window.onload = function() {
    var header = document.getElementsByTagName('header')[0];
    var nav = document.getElementsByTagName('nav')[0];
    var aside = document.getElementsByTagName('aside')[0];
    var footer = document.getElementsByTagName('footer')[0];
 
    // 使用 setInterval 实现简单的动画效果
    setInterval(function() {
        var random = Math.random() * 20; // 生成一个0到20之间的随机数
        header.style.left = random + 'px'; // 改变元素的位置
        nav.style.height = random + 'px'; // 改变元素的高度
        aside.style.width = random + 'px'; // 改变元素的宽度
        footer.style.fontSize = random + 'px'; // 改变元素的字体大小
    }, 100);
};

以上代码展示了如何使用HTML5和CSS3创建一个简单的页面框架,并通过JavaScript实现动态效果。这个例子旨在展示基础的页面结构和动画技术,并不是实际的动画效果,因为动画效果需要更复杂的逻辑和CSS3的animations和transforms属性。

2024-08-19

在Three.js中,CSS3DRenderer可以用来渲染3D的HTML元素,但它不能直接渲染HTML标签。你需要先创建一个3D对象,然后把HTML元素作为CSS3DObject的子元素添加到场景中。

以下是一个简单的例子,展示如何使用CSS3DRenderer渲染HTML标签:




import * as THREE from 'three';
import { CSS3DRenderer, CSS3DObject } from 'three/examples/jsm/renderers/CSS3DRenderer.js';
 
// 创建场景、相机和渲染器
const scene = new THREE.Scene();
const camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);
const renderer = new CSS3DRenderer();
renderer.setSize(window.innerWidth, window.innerHeight);
document.body.appendChild(renderer.domElement);
 
// 创建HTML元素并转换为3D对象
const htmlElement = document.createElement('div');
htmlElement.style.width = '100px';
htmlElement.style.height = '100px';
htmlElement.style.background = 'red';
htmlElement.innerHTML = 'Hello, CSS3D';
const box = new CSS3DObject(htmlElement);
scene.add(box);
 
// 动画循环
function animate() {
  requestAnimationFrame(animate);
  renderer.render(scene, camera);
}
 
animate();

在这个例子中,我们首先创建了一个Three.js场景、相机和CSS3DRenderer渲染器。然后我们创建了一个HTML div元素,并设置了它的样式和内容。接着我们使用这个HTML元素创建了一个CSS3DObject,并将它添加到Three.js的场景中。最后,我们启动了一个简单的动画循环来渲染场景。

请注意,这个例子假设你已经在你的项目中引入了Three.js和CSS3DRenderer模块。如果你是在浏览器中直接运行代码,请确保你有一个能够加载Three.js和CSS3DRenderer的环境。