2024-08-12

要实现鼠标经过图片时放大,鼠标离开时缩小到原始大小的效果,可以使用CSS3的transition属性来实现动画效果,以及:hover伪类来定义鼠标经过时的样式。

以下是实现该效果的CSS代码示例:




img {
  transition: transform 0.5s ease; /* 定义变换动画,0.5秒内完成 */
  transform: scale(1); /* 默认缩放比例 */
  display: block; /* 使图片宽度占满父容器 */
}
 
img:hover {
  transform: scale(1.1); /* 鼠标经过时的缩放比例 */
}

将上述CSS代码添加到你的样式表中,并确保你的HTML代码包含了图片元素。鼠标经过图片时,它会平滑放大,鼠标离开后,图片会平滑缩小到原始大小。

2024-08-12

以下是使用jQuery和CSS3制作的Tab切换效果,同时每个激活的Tab项都会有一个发光的效果。

HTML部分:




<div class="tabs">
  <input type="radio" id="tab1" name="tab-control" checked>
  <input type="radio" id="tab2" name="tab-control">
  <input type="radio" id="tab3" name="tab-control">
  <ul>
    <li title="Tab 1"><label for="tab1">Tab 1</label></li>
    <li title="Tab 2"><label for="tab2">Tab 2</label></li>
    <li title="Tab 3"><label for="tab3">Tab 3</label></li>
  </ul>
  <div class="content">
    <section>
      <h2>Tab 1</h2>
      <p>Content for tab 1...</p>
    </section>
    <section>
      <h2>Tab 2</h2>
      <p>Content for tab 2...</p>
    </section>
    <section>
      <h2>Tab 3</h2>
      <p>Content for tab 3...</p>
    </section>
  </div>
</div>

CSS部分:




.tabs {
  width: 100%;
  display: inline-block;
}
 
.tabs input[type="radio"] {
  display: none;
}
 
.tabs ul {
  cursor: pointer;
  list-style-type: none;
  padding: 0;
  margin: 0;
  position: relative;
  z-index: 1;
}
 
.tabs li {
  float: left;
  margin-bottom: -1px;
}
 
.tabs label {
  display: block;
  padding: 10px 20px;
  border: 1px solid #ccc;
  cursor: pointer;
  position: relative;
  z-index: 2;
  transition: background-color 0.3s;
}
 
.tabs label:hover {
  background-color: #f0f0f0;
}
 
.content {
  clear: both;
  padding: 10px;
  position: relative;
  z-index: 1;
}
 
.content section {
  display: none;
  padding: 20px;
  border: 1px solid #ccc;
  position: absolute;
  left: 0;
  top: 30px;
  width: 100%;
}
 
[id^="tab"]:checked + label {
  z-index: 3;
  border-bottom: 1px solid #fff;
}
 
[id^="tab"]:checked ~ [id^="tab"] + label {
  z-index: 2;
}
 
[id^="tab"]:checked ~ .content section {
  display: block;
  animation: glow 1.5s ease-in-out infinite alternate;
}
 
@keyframes glow {
  from {
    text-shadow: 0 0 10px #fff, 0 0 20px #fff, 0 0 30px #ff00de, 0 0 40px #ff00de, 0 0 50px #ff00de;
  }
  to {
    text-shadow: 0 0 20px #fff, 0 0 30px #ff00de, 0 0 40px #ff00de, 0 0 50px #ff00de, 0 0 60px #ff00de;
  }
}

jQuery部分:




$(document).ready(function() {
  $('input[ty
2024-08-12

CSS3中新增了一些背景相关的属性,以下是一些常见的新增背景属性及其使用示例:

  1. background-size: 可以指定背景图片的大小,可以设置为具体的宽高值或者使用诸如covercontain这样的关键字。



/* 指定背景图片的大小 */
div {
  background-image: url('image.jpg');
  background-size: 150px 100px; /* 宽度150px,高度100px */
}
 
/* 使用关键字cover使背景图片覆盖整个元素,可能会被裁剪 */
div {
  background-image: url('image.jpg');
  background-size: cover;
}
 
/* 使用关键字contain使背景图片缩放到适合元素尺寸的最大尺寸,无裁剪 */
div {
  background-image: url('image.jpg');
  background-size: contain;
}
  1. background-origin: 可以指定背景图片的起始位置,可以设置为border-box, padding-box, 或者content-box



/* 背景图片的起始位置在边框盒 */
div {
  background-image: url('image.jpg');
  background-origin: border-box;
}
 
/* 背景图片的起始位置在内填充盒 */
div {
  background-image: url('image.jpg');
  background-origin: padding-box;
}
 
/* 背景图片的起始位置在内容盒 */
div {
  background-image: url('image.jpg');
  background-origin: content-box;
}
  1. background-clip: 可以指定背景的裁剪区域,同样可以设置为border-box, padding-box, 或者content-box



/* 背景裁剪在边框盒之外 */
div {
  background-color: red;
  background-clip: border-box;
}
 
/* 背景裁剪在内填充盒之外 */
div {
  background-color: red;
  background-clip: padding-box;
}
 
/* 背景裁剪在内容盒之外 */
div {
  background-color: red;
  background-clip: content-box;
}
  1. background-break: 用于控制背景图片的行为,当内容宽度超过视口时。



/* 背景图片在内容宽度超过视口时不会重复 */
div {
  background-image: url('image.jpg');
  background-repeat: no-repeat;
  background-break: clone;
}
  1. background-attachment: 可以设置背景是否随页面滚动。



/* 背景固定,不随页面滚动 */
div {
  background-image: url('image.jpg');
  background-attachment: fixed;
}
 
/* 背景相对于元素固定,不随元素滚动 */
div {
  background-image: url('image.jpg');
  background-attachment: local;
}
  1. background-repeat: 可以设置背景图片的重复方式。



/* 背景图片不重复 */
div {
  background-image: url('image.jpg');
  background-repeat: no-repeat;
}
 
/* 背景图片横向重复 */
div {
  background-image: url('image.jpg');
  background-repeat: repeat-x;
}
 
/* 背景图片纵向重复 */
div {
  background-image: url('image.jpg');
  background-repeat: repeat-y;
}
 
/* 背景图片在水平方向和垂直方向上都重复 */
div {
  background-image
2024-08-12



/* 定义自定义字体,指定字体文件的URL */
@font-face {
  font-family: 'MyCustomFont';
  src: url('./path/to/my-custom-font.woff2') format('woff2'), /* 最优先级 */
       url('./path/to/my-custom-font.woff') format('woff'),   /* 次优先级 */
       url('./path/to/my-custom-font.ttf') format('truetype'); /* 最后的备选方案 */
}
 
/* 应用自定义字体 */
body {
  font-family: 'MyCustomFont', sans-serif;
}

这段代码展示了如何使用@font-face规则来定义一个自定义字体,并指定了不同格式的字体文件作为备选方案。这样用户的浏览器会自动选择支持的格式进行加载。同时,示例中展示了如何在body标签上应用这个自定义字体,并提供了sans-serif作为备用字体。这是一个简单而实用的自定义字体使用案例。

2024-08-12

在HTML5和CSS3的基础上,我们可以创建一个简单的网页布局,包含导航栏、主内容区域和页脚。以下是一个示例代码:




<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Simple Page Layout</title>
<style>
  body {
    font-family: Arial, sans-serif;
    margin: 0;
    padding: 0;
    display: flex;
    min-height: 100vh;
    flex-direction: column;
  }
 
  header, footer {
    background-color: #f2f2f2;
    padding: 10px 0;
    text-align: center;
  }
 
  nav {
    background-color: #333;
    color: white;
    text-align: center;
    padding: 10px 0;
    display: flex;
  }
 
  nav a {
    color: white;
    text-decoration: none;
    padding: 0 15px;
  }
 
  main {
    flex: 1;
    padding: 20px;
  }
 
  section {
    margin-bottom: 20px;
    padding-bottom: 10px;
    border-bottom: 1px solid #ddd;
  }
 
  footer {
    margin-top: auto;
  }
</style>
</head>
<body>
 
<header>
  <h1>Simple Layout Example</h1>
</header>
 
<nav>
  <a href="#">Home</a>
  <a href="#">About</a>
  <a href="#">Contact</a>
</nav>
 
<main>
  <section>
    <h2>Section Title</h2>
    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit...</p>
  </section>
  <!-- More sections as needed -->
</main>
 
<footer>
  <p>Copyright &copy; 2023 Your Company</p>
</footer>
 
</body>
</html>

这个示例展示了如何使用CSS Flexbox布局来创建一个简洁而有效的网页结构。header 用于顶部信息,nav 用于导航链接,main 用于主要内容,而 footer 用于底部信息。通过这样的布局,我们可以快速搭建一个有组织的页面框架。

2024-08-12

以下是一个简单的3D旋转木马效果和图片倒影特效的示例代码。这个示例使用了HTML和CSS来实现。

HTML部分:




<div class="carousel">
  <div class="carousel-item">
    <img src="image1.jpg" alt="Image 1">
  </div>
  <div class="carousel-item">
    <img src="image2.jpg" alt="Image 2">
  </div>
  <div class="carousel-item">
    <img src="image3.jpg" alt="Image 3">
  </div>
</div>

CSS部分:




.carousel {
  perspective: 600px;
  position: relative;
  width: 300px;
  height: 200px;
  margin: 50px auto;
}
 
.carousel-item {
  position: absolute;
  width: 100%;
  height: 100%;
  backface-visibility: hidden;
  transition: transform 1s;
}
 
.carousel-item img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.5);
}
 
.carousel-item:nth-child(n+2) {
  transform: rotateY(90deg) translateZ(-250px);
}
 
.carousel:hover .carousel-item {
  transform: rotateY(calc(90deg * ((var(--index) - 1) + (var(--mouse-position) - 1) * 0.25))) translateZ(calc(-250px * (var(--mouse-position) - 1)));
}

在这个例子中,.carousel 是旋转木马的容器,.carousel-item 是每张图片的容器。图片使用了 object-fit: cover; 来保持其宽高比,并且使用了阴影来创建倒影效果。

鼠标悬停时,每个 .carousel-item 会根据 --index--mouse-position 两个变量(需要通过JavaScript来赋值)进行3D旋转。这里的旋转计算是示例性质的,实际情况可能需要更复杂的数学计算和逻辑判断。

请注意,这个示例并不完整,因为它缺少对 --index--mouse-position 变量的赋值逻辑。实际应用中,你需要使用JavaScript来跟踪鼠标位置,并相应地更新这些变量,从而实现动态的旋转效果。

2024-08-12

以下是一个使用jQuery和CSS3创建相册图片叠加堆放展开动画的示例代码:

HTML部分:




<div id="gallery">
  <div class="item">
    <img src="image1.jpg" alt="Image 1">
    <div class="overlay"></div>
  </div>
  <!-- 其他图片项 -->
</div>

CSS部分:




#gallery .item {
  position: relative;
  width: 200px;
  height: 200px;
  float: left;
  margin: 10px;
  overflow: hidden;
}
 
#gallery .item img {
  width: 100%;
  height: auto;
  transition: transform 0.5s ease-in-out;
}
 
#gallery .item .overlay {
  position: absolute;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.5);
  opacity: 0;
  transition: opacity 0.5s ease-in-out, transform 0.5s ease-in-out;
  transform: translateY(100%);
}
 
/* 其他样式 */

jQuery部分:




$(document).ready(function() {
  $('#gallery .item').hover(function() {
    // 鼠标悬停时
    $(this).find('img').css({
      transform: 'scale(1.1)'
    });
    $(this).find('.overlay').css({
      opacity: 1,
      transform: 'translateY(0)'
    });
  }, function() {
    // 鼠标移出时
    $(this).find('img').css({
      transform: 'scale(1)'
    });
    $(this).find('.overlay').css({
      opacity: 0,
      transform: 'translateY(100%)'
    });
  });
});

这段代码实现了当鼠标悬停在相册图片上时,图片会缩放并且叠加层会由上向下展开的堆放开展动画效果。鼠标移出时,动画效果逆向播放,恢复到原始状态。这是一个典型的利用CSS3的transform和transition属性制作的动画效果。

2024-08-12

CSS3关键帧动画可以使用@keyframes规则来创建。关键帧动画是将动画分解为一系列的关键帧,然后将每个关键帧的样式用百分比来表示(如0%、25%、50%、75%、100%)。在每个关键帧上,可以指定元素的样式。

以下是一个简单的例子,创建一个动画让一个元素的背景颜色从红色渐变到蓝色:




@keyframes colorChange {
  0% {
    background-color: red;
  }
  100% {
    background-color: blue;
  }
}
 
.animated-box {
  width: 100px;
  height: 100px;
  animation: colorChange 2s infinite alternate;
}

在这个例子中,.animated-box 类定义了一个动画,名为 colorChange,持续时间为2秒,并且设置为无限次循环,且每次循环方向交替(alternate)。

@keyframes colorChange 规则定义了动画的关键帧。0% 表示动画的开始,100% 表示动画的结束。在每个百分比的状态下,我们设置了不同的 background-color 属性。

2024-08-12



/* 使用 CSS3 2D 转换的 rotate 函数,绘制一个等边三角形 */
.triangle {
  width: 0;
  height: 0;
  border-left: 50px solid transparent;
  border-right: 50px solid transparent;
  border-bottom: 86.6px solid #2ecc71;
  position: relative;
  top: -50px;
}
 
/* 使用 CSS3 2D 转换的 rotate 函数,将三角形旋转为一个正方形 */
.triangle-rotate {
  transform: rotate(45deg);
  animation: rotate-triangle 5s infinite linear;
}
 
/* 创建一个无限循环的动画,持续旋转正方形 */
@keyframes rotate-triangle {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}

这段代码定义了一个 .triangle 类,用于创建一个等边三角形。然后定义了一个 .triangle-rotate 类,该类使用 CSS3 的 transform 属性和 rotate 函数将等边三角形旋转为正方形,并且使用 @keyframes 创建了一个无限循环的动画,使得正方形可以持续旋转。这个示例展示了如何使用 CSS3 的 2D 转换和动画来创建动态的图形效果。

2024-08-12

第六章的主题是HTML和CSS。以下是一些关键概念和示例代码:

  1. HTML基础:

    • 学习创建基本的HTML页面结构。
    • 使用div、span和p标签来构建页面布局。



<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>页面标题</title>
</head>
<body>
    <div>
        这是一个div元素。
    </div>
    <span>
        这是一个span元素。
    </span>
    <p>
        这是一个段落。
    </p>
</body>
</html>
  1. CSS基础:

    • 学习如何使用CSS为HTML元素添加样式。
    • 使用class和id选择器来定义样式。



<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>CSS示例</title>
    <style>
        .my-style {
            color: blue;
            font-size: 20px;
        }
        #my-id {
            color: red;
            font-weight: bold;
        }
    </style>
</head>
<body>
    <p class="my-style">这是一个蓝色字体的段落。</p>
    <p id="my-id">这是一个加粗且红色的文本。</p>
</body>
</html>
  1. CSS3特效:

    • 学习CSS3提供的特效,比如渐变、边框、阴影等。



/* CSS3 渐变效果 */
.gradient-background {
    background: linear-gradient(to right, red, yellow);
}
 
/* CSS3 边框效果 */
.border-radius {
    border: 2px solid black;
    border-radius: 5px;
}
 
/* CSS3 阴影效果 */
.box-shadow {
    box-shadow: 5px 5px 10px grey;
}
  1. 实践:创建一个简单的带有CSS样式的网页。



<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>实践示例</title>
    <style>
        body {
            font-family: Arial, sans-serif;
        }
        header {
            background-color: #4CAF50;
            color: white;
            padding: 10px;
            text-align: center;
        }
        nav {
            float: left;
            width: 20%;
            background: #f2f2f2;
            padding: 15px;
        }
        section {
            float: right;
            width: 80%;
            padding: 15px;
        }
        footer {
            clear: both;
            text-align: center;
            padding: 10px;
            background-color: #ddd;
        }
    </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>
 
</