IP地址转换
二进制表示:
十进制表示:
单个八位组结果:
网络工具
网络信息:
IP地址类别
确定IP地址属于A、B、C、D或E类
私有地址检查
检查IP地址是否为私有地址范围
CIDR转换
在CIDR表示法和子网掩码之间转换
网络地址计算
根据IP和子网掩码计算网络地址
由于物理腐竹掉入后室英勇献身,本站由@NeterMO继承运行
从基础到进阶的JavaScript和CSS教程
CSS选择器用于选择要样式化的HTML元素。常见的选择器包括:
/* 元素选择器 */
p {
color: blue;
font-size: 16px;
}
/* 类选择器 */
.button {
background-color: #4CAF50;
color: white;
padding: 10px 20px;
}
/* ID选择器 */
#header {
background-color: #333;
color: white;
}
/* 伪类选择器 */
a:hover {
color: red;
text-decoration: underline;
}
CSS盒模型是网页布局的基础概念。每个元素都被视为一个矩形盒子,包含:
.box {
/* 内容尺寸 */
width: 200px;
height: 100px;
/* 内边距 */
padding: 20px;
/* 边框 */
border: 2px solid #333;
/* 外边距 */
margin: 15px;
/* 盒模型计算 */
/* 总宽度 = width + padding-left + padding-right + border-left + border-right */
/* 总高度 = height + padding-top + padding-bottom + border-top + border-bottom */
}
/* 使用box-sizing: border-box可以更直观地控制元素尺寸 */
.border-box {
box-sizing: border-box;
width: 200px; /* 包含padding和border */
padding: 20px;
border: 2px solid #333;
}
CSS过渡允许属性值在一定时间内平滑地变化,而不是立即改变。
/* 基础过渡效果 */
.button {
background-color: blue;
transition: background-color 0.3s ease;
}
.button:hover {
background-color: red;
}
/* 多个属性的过渡 */
.card {
opacity: 0.8;
transform: scale(1);
transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}
.card:hover {
opacity: 1;
transform: scale(1.05);
}
/* 分别设置不同属性的过渡 */
.complex-transition {
transition:
opacity 0.3s ease,
transform 0.5s ease-out 0.1s,
background-color 0.2s linear;
}
CSS关键帧动画允许创建更复杂的动画序列,通过定义动画在不同时间点的状态。
/* 定义关键帧动画 */
@keyframes slideIn {
from {
transform: translateX(-100%);
opacity: 0;
}
to {
transform: translateX(0);
opacity: 1;
}
}
@keyframes bounce {
0%, 20%, 50%, 80%, 100% {
transform: translateY(0);
}
40% {
transform: translateY(-30px);
}
60% {
transform: translateY(-15px);
}
}
/* 应用动画 */
.slide-element {
animation: slideIn 0.8s ease-out;
}
.bounce-element {
animation:
bounce 2s infinite,
slideIn 1s ease-out;
}
/* 完整的动画属性 */
.advanced-animation {
animation-name: slideIn;
animation-duration: 1s;
animation-timing-function: ease-in-out;
animation-delay: 0.5s;
animation-iteration-count: infinite;
animation-direction: alternate;
}
点击下面的按钮查看不同的CSS动画效果:
JavaScript提供了多种方法来选择和操作DOM元素。
// 选择元素的不同方法
const elementById = document.getElementById('myElement');
const elementByQuery = document.querySelector('.my-class');
const elementsByQuery = document.querySelectorAll('div');
// 修改元素内容
elementById.innerHTML = '新内容';
elementByQuery.textContent = '纯文本内容';
// 修改样式
elementById.style.color = 'red';
elementById.style.fontSize = '20px';
// 添加/移除CSS类
elementByQuery.classList.add('active');
elementByQuery.classList.remove('inactive');
elementByQuery.classList.toggle('hidden');
// 创建新元素
const newElement = document.createElement('div');
newElement.textContent = '新创建的元素';
document.body.appendChild(newElement);
了解如何在DOM树中导航和查找相关元素。
// 获取父元素
const parent = element.parentNode;
// 获取所有子元素
const children = element.children;
const firstChild = element.firstElementChild;
const lastChild = element.lastElementChild;
// 获取相邻元素
const nextElement = element.nextElementSibling;
const prevElement = element.previousElementSibling;
// 在DOM树中查找特定元素
const container = document.querySelector('.container');
// 在容器内查找元素
const button = container.querySelector('button');
// 检查元素是否包含特定类
if (element.classList.contains('active')) {
console.log('元素处于激活状态');
}
// 遍历所有子元素
Array.from(container.children).forEach(child => {
console.log(child.tagName);
});
尝试下面的DOM操作演示:
DOM操作演示区域
事件监听器允许JavaScript响应用户交互和其他事件。
// 添加点击事件监听器
const button = document.querySelector('#myButton');
function handleClick(event) {
console.log('按钮被点击了!');
console.log('事件类型:', event.type);
console.log('目标元素:', event.target);
event.preventDefault(); // 阻止默认行为
}
button.addEventListener('click', handleClick);
// 添加多个事件类型
button.addEventListener('mouseover', function() {
console.log('鼠标悬停在按钮上');
});
button.addEventListener('mouseout', function() {
console.log('鼠标离开按钮');
});
// 使用事件委托
document.addEventListener('click', function(event) {
if (event.target.classList.contains('item')) {
console.log('点击了项目:', event.target.textContent);
}
});
// 移除事件监听器
button.removeEventListener('click', handleClick);
事件对象提供了丰富的信息和方法来控制事件行为。
// 事件对象的使用
document.addEventListener('keydown', function(event) {
console.log('按键代码:', event.keyCode);
console.log('按键:', event.key);
if (event.key === 'Escape') {
console.log('ESC键被按下');
}
});
// 表单提交事件
const form = document.querySelector('#myForm');
form.addEventListener('submit', function(event) {
event.preventDefault(); // 阻止表单默认提交
const formData = new FormData(form);
console.log('表单数据:', Object.fromEntries(formData));
});
// 鼠标事件
document.addEventListener('mousemove', function(event) {
console.log(`鼠标位置: X=${event.clientX}, Y=${event.clientY}`);
});
// 阻止事件冒泡
const innerElement = document.querySelector('.inner');
innerElement.addEventListener('click', function(event) {
console.log('内部元素被点击');
event.stopPropagation(); // 阻止事件冒泡到外层元素
});
const outerElement = document.querySelector('.outer');
outerElement.addEventListener('click', function() {
console.log('外部元素被点击 - 这不会在点击内部元素时触发');
});
尝试下面的交互演示:
事件日志将显示在这里...
理解文件路径是网页开发的基础:
/* 文件结构示例:
project/
├── index.html
├── styles/
│ └── style.css
├── images/
│ ├── logo.png
│ └── background.jpg
└── pages/
└── about.html
*/
/* 在 index.html 中引用资源: */
<link rel="stylesheet" href="styles/style.css">
<img src="images/logo.png" alt="Logo">
<a href="pages/about.html">关于我们</a>
<link rel="stylesheet" href="/styles/style.css">
<img src="/images/logo.png" alt="Logo">
<!-- 在 about.html 中引用根目录的样式 -->
<link rel="stylesheet" href="../styles/style.css">
/* 路径符号说明:
./ 当前目录(可省略)
../ 上级目录
/ 根目录
*/
合理的文件组织结构让项目更易维护:
项目名称/
├── index.html # 主页面
├── Behavior_Pack/ # 行为包 - 脚本文件
│ ├── script.js # 主脚本
│ └── utils.js # 工具函数
├── Resource_Pack/ # 资源包 - 资源文件
│ ├── images/ # 图片资源
│ │ ├── logos/
│ │ ├── backgrounds/
│ │ └── icons/
│ ├── styles/ # 样式文件
│ │ ├── main.css
│ │ └── components.css
│ └── fonts/ # 字体文件
└── pages/ # 其他页面
├── about.html
└── contact.html
学习如何在HTML中正确引用资源文件:
<!DOCTYPE html>
<html>
<head>
<!-- 引用Resource_Pack中的样式 -->
<link rel="stylesheet" href="Resource_Pack/styles/main.css">
<!-- 预加载重要资源 -->
<link rel="preload" href="Resource_Pack/images/hero-bg.jpg" as="image">
</head>
<body>
<!-- 引用Resource_Pack中的图片 -->
<img src="Resource_Pack/images/logo.png" alt="网站Logo">
<!-- 使用CSS引用背景图片 -->
<div class="hero" style="background-image: url('Resource_Pack/images/hero-bg.jpg');">
<h1>欢迎来到我的网站</h1>
</div>
<!-- 引用Behavior_Pack中的脚本 -->
<script src="Behavior_Pack/script.js"></script>
</body>
</html>
使用下面的工具来理解文件路径:
二进制与十进制IP地址转换及网络计算工具
确定IP地址属于A、B、C、D或E类
检查IP地址是否为私有地址范围
在CIDR表示法和子网掩码之间转换
根据IP和子网掩码计算网络地址