活动介绍

cursor中文版改背景颜色

时间: 2025-01-09 22:38:56 浏览: 366
### 修改光标的背景颜色 在中文版环境中修改光标的背景颜色通常涉及到图形界面库的具体实现方式。对于不同的编程环境和GUI框架,方法可能有所不同。 如果是在基于SDL的应用程序中操作光标属性,则可以通过自定义光标来间接改变其视觉效果[^3]: ```cpp // 加载用于制作新光标的图像资源 SDL_Surface* cursorSurface = IMG_Load("path/to/custom_cursor.png"); if (cursorSurface != NULL) { // 定义热区,默认设为图片中心点 int hotSpotX = cursorSurface->w / 2; int hotSpotY = cursorSurface->h / 2; // 创建新的光标对象 SDL_Cursor *customCursor = SDL_CreateColorCursor(cursorSurface, hotSpotX, hotSpotY); // 应用自定义光标 SDL_SetCursor(customCursor); } ``` 上述代码展示了如何加载一张PNG格式的图片作为新的鼠标指针,并设置了该图标的热点位置(即点击时的实际坐标)。需要注意的是,“路径/to/custom_cursor.png”应替换为实际存在的文件路径;而`IMG_Load()`函数来自SDL_image扩展库,因此需确保已正确安装并链接此库。 另外,在某些情况下,直接修改操作系统级别的光标样式可能是更为简便的选择。这取决于具体的需求以及所使用的开发平台和技术栈。
阅读全文

相关推荐

根据以下代码,进行页面优化,要求能在不联网的win7上运行打包文件import tkinter as tk from tkinter import ttk, messagebox import sqlite3 import os import sys class FileManagementSystem: def __init__(self, root): # 主窗口设置 self.root = root self.root.title("档案管理系统") self.root.geometry("1200x700") self.root.minsize(1000, 600) # 样式配置 - 重点调整表格边框样式 self.setup_styles() # 初始化数据库 self.init_database() # 当前类别 self.current_category = "文书类" # 创建界面组件 self.create_widgets() # 加载数据 self.load_data() def setup_styles(self): """设置界面样式,统一表格边框颜色""" self.style = ttk.Style() # 基础字体设置,确保中文显示 self.style.configure(".", font=("Microsoft YaHei", 10)) # 窗口背景色 self.root.configure(bg="#f5f5f5") # 统一按钮样式 self.style.configure("Standard.TButton", font=("Microsoft YaHei", 10), padding=6, background="#4285f4", foreground="#333333", borderwidth=0, width=8) self.style.map("Standard.TButton", background=[("active", "#3367d6"), ("pressed", "#2850b3")]) # 表格样式 - 重点调整边框颜色 # 设置表格整体边框颜色 self.style.configure("Flat.Treeview", background="white", foreground="#333333", rowheight=28, fieldbackground="white", borderwidth=1, relief="solid", # 确保边框可见 bd=1) # 表格边框宽度 # 设置表头样式,关键是统一表头下方横线与列间竖线颜色 self.style.configure("Flat.Treeview.Heading", background="#f0f0f0", foreground="#555555", font=("Microsoft YaHei", 10, "bold"), padding=8, borderwidth=1, # 表头边框宽度 relief="solid") # 表头边框样式 # 设置表格选中行样式 self.style.map("Flat.Treeview", background=[("selected", "#e8f0fe")], foreground=[("selected", "#202124")]) # 设置边框颜色(关键修复) # 通过设置颜色使表头下方横线与列间竖线颜色一致 self.style.configure("Flat.Treeview", bordercolor="#d0d0d0") self.style.configure("Flat.Treeview.Heading", bordercolor="#d0d0d0") # 单选按钮样式 self.style.configure("Flat.TRadiobutton", background="#f5f5f5", font=("Microsoft YaHei", 10), foreground="#333333") self.style.map("Flat.TRadiobutton", foreground=[("selected", "#4285f4")]) # 输入框样式 self.style.configure("Uniform.TEntry", fieldbackground="white", borderwidth=1, relief="solid", padding=5, width=40) def init_database(self): """初始化数据库""" if getattr(sys, 'frozen', False): base_dir = os.path.dirname(sys.executable) else: base_dir = os.path.dirname(os.path.abspath(__file__)) db_path = os.path.join(base_dir, "file_management.db") self.conn = sqlite3.connect(db_path) self.cursor = self.conn.cursor() # 创建文书类表 self.cursor.execute(''' CREATE TABLE IF NOT EXISTS documents ( id INTEGER PRIMARY KEY AUTOINCREMENT, file_number TEXT NOT NULL, document_number TEXT, responsible TEXT, title TEXT NOT NULL, date TEXT, security_level TEXT, page_count INTEGER, retention_period TEXT, carrier_form TEXT, remarks TEXT ) ''') # 创建基建类表 self.cursor.execute(''' CREATE TABLE IF NOT EXISTS infrastructure ( id INTEGER PRIMARY KEY AUTOINCREMENT, file_number TEXT NOT NULL, document_number TEXT, responsible TEXT, title TEXT NOT NULL, date TEXT, project_date TEXT, security_level TEXT, page_count INTEGER, retention_period TEXT, carrier_form TEXT, remarks TEXT ) ''') self.conn.commit() def create_widgets(self): """创建界面组件""" # 顶部标题栏 header_frame = tk.Frame(self.root, bg="#4285f4", height=50) header_frame.pack(fill=tk.X) header_frame.pack_propagate(False) title_label = tk.Label(header_frame, text="档案管理系统", font=("Microsoft YaHei", 16, "bold"), bg="#4285f4", fg="white") title_label.pack(pady=10) # 功能区 function_frame = tk.Frame(self.root, bg="#f5f5f5", padx=20, pady=15) function_frame.pack(fill=tk.X) # 左侧分类选择 category_frame = tk.Frame(function_frame, bg="#f5f5f5") category_frame.pack(side=tk.LEFT) tk.Label(category_frame, text="档案类别:", font=("Microsoft YaHei", 10, "bold"), bg="#f5f5f5", fg="#555555").pack(side=tk.LEFT, padx=5) self.category_var = tk.StringVar(value="文书类") doc_radio = ttk.Radiobutton( category_frame, text="文书类", variable=self.category_var, value="文书类", command=self.on_category_change, style="Flat.TRadiobutton" ) inf_radio = ttk.Radiobutton( category_frame, text="基建类", variable=self.category_var, value="基建类", command=self.on_category_change, style="Flat.TRadiobutton" ) doc_radio.pack(side=tk.LEFT, padx=10) inf_radio.pack(side=tk.LEFT, padx=10) # 右侧操作按钮 button_frame = tk.Frame(function_frame, bg="#f5f5f5") button_frame.pack(side=tk.RIGHT) self.add_btn = ttk.Button(button_frame, text="添加", command=self.add_record, style="Standard.TButton") self.add_btn.pack(side=tk.LEFT, padx=5) self.edit_btn = ttk.Button(button_frame, text="修改", command=self.edit_record, style="Standard.TButton") self.edit_btn.pack(side=tk.LEFT, padx=5) self.delete_btn = ttk.Button(button_frame, text="删除", command=self.delete_record, style="Standard.TButton") self.delete_btn.pack(side=tk.LEFT, padx=5) # 搜索区 search_frame = tk.Frame(self.root, bg="#f5f5f5", padx=20, pady=0) search_frame.pack(fill=tk.X) search_container = tk.Frame(search_frame, bg="white", bd=1, relief=tk.SOLID) search_container.pack(fill=tk.X, ipady=2) tk.Label(search_container, text="搜索:", font=("Microsoft YaHei", 10), bg="white", fg="#555555").pack(side=tk.LEFT, padx=10) self.search_var = tk.StringVar() self.search_entry = ttk.Entry(search_container, textvariable=self.search_var, style="Uniform.TEntry", font=("Microsoft YaHei", 10)) self.search_entry.pack(side=tk.LEFT, padx=5, fill=tk.X, expand=True) self.search_btn = ttk.Button(search_container, text="搜索", command=self.search_data, style="Standard.TButton") self.search_btn.pack(side=tk.LEFT, padx=10) self.reset_btn = ttk.Button(search_container, text="重置", command=self.reset_search, style="Standard.TButton") self.reset_btn.pack(side=tk.LEFT, padx=5) # 表格区域 table_frame = tk.Frame(self.root, bg="#e0e0e0", padx=1, pady=1) table_frame.pack(fill=tk.BOTH, expand=True, padx=20, pady=15) table_container = tk.Frame(table_frame, bg="white", bd=1, relief=tk.SOLID) table_container.pack(fill=tk.BOTH, expand=True) # 滚动条 scrollbar_x = ttk.Scrollbar(table_container, orient=tk.HORIZONTAL) scrollbar_y = ttk.Scrollbar(table_container, orient=tk.VERTICAL) # 表格 self.tree = ttk.Treeview( table_container, columns=self.get_columns(), show="headings", yscrollcommand=scrollbar_y.set, xscrollcommand=scrollbar_x.set, style="Flat.Treeview" ) # 配置列 columns = self.get_columns() for col in columns: self.tree.heading(col, text=col) width = 110 if col not in ["题名", "备注"] else 200 if col == "题名" else 150 self.tree.column(col, width=width, anchor=tk.CENTER, stretch=False) # 布局 scrollbar_y.pack(side=tk.RIGHT, fill=tk.Y) scrollbar_x.pack(side=tk.BOTTOM, fill=tk.X) self.tree.pack(side=tk.LEFT, fill=tk.BOTH, expand=True) scrollbar_y.config(command=self.tree.yview) scrollbar_x.config(command=self.tree.xview) # 绑定事件 self.tree.bind("<Double-1>", lambda e: self.edit_record()) # 页脚 footer_frame = tk.Frame(self.root, bg="#f0f0f0", height=30) footer_frame.pack(side=tk.BOTTOM, fill=tk.X) # 左侧状态信息 self.status_var = tk.StringVar(value="记录数量:0") status_label = tk.Label( footer_frame, textvariable=self.status_var, font=("Microsoft YaHei", 9), bg="#f0f0f0", fg="#666666", anchor=tk.W ) status_label.pack(side=tk.LEFT, padx=20, pady=5) # 右侧版权信息 footer_label = tk.Label( footer_frame, text="矿调所大数据中心所有 开发人员:袁", font=("Microsoft YaHei", 9), bg="#f0f0f0", fg="#666666" ) footer_label.pack(side=tk.RIGHT, padx=20, pady=5) def center_window(self, window, width, height): """使窗口居中显示""" screen_width = window.winfo_screenwidth() screen_height = window.winfo_screenheight() x = (screen_width - width) // 2 y = (screen_height - height) // 2 window.geometry(f"{width}x{height}+{x}+{y}") def get_columns(self): """获取当前类别的列""" if self.current_category == "文书类": return ["序号", "档号", "文号", "责任者", "题名", "日期", "密级", "页数", "保存期限", "载体形式", "备注"] else: return ["序号", "档号", "文号", "责任者", "题名", "日期", "工程日期", "密级", "页数", "保管期限", "载体形式", "备注"] def on_category_change(self): """类别改变时更新界面""" self.current_category = self.category_var.get() # 清空表格数据 for item in self.tree.get_children(): self.tree.delete(item) # 重新设置表格列 new_columns = self.get_columns() self.tree["columns"] = new_columns # 配置新列 for col in new_columns: self.tree.heading(col, text=col) width = 110 if col not in ["题名", "备注"] else 200 if col == "题名" else 150 self.tree.column(col, width=width, anchor=tk.CENTER, stretch=False) # 重新加载对应类别的数据 self.load_data() def load_data(self, search_term=None): """加载数据""" # 清空表格 for item in self.tree.get_children(): self.tree.delete(item) # 根据当前类别查询对应表的数据 if self.current_category == "文书类": query = """ SELECT id, file_number, document_number, responsible, title, date, security_level, page_count, retention_period, carrier_form, remarks FROM documents """ count_query = "SELECT COUNT(*) FROM documents" else: query = """ SELECT id, file_number, document_number, responsible, title, date, project_date, security_level, page_count, retention_period, carrier_form, remarks FROM infrastructure """ count_query = "SELECT COUNT(*) FROM infrastructure" # 添加搜索条件 if search_term: query += f" WHERE file_number LIKE '%{search_term}%' OR title LIKE '%{search_term}%' OR responsible LIKE '%{search_term}%' OR document_number LIKE '%{search_term}%'" count_query += f" WHERE file_number LIKE '%{search_term}%' OR title LIKE '%{search_term}%' OR responsible LIKE '%{search_term}%' OR document_number LIKE '%{search_term}%'" query += " ORDER BY id" self.cursor.execute(query) records = self.cursor.fetchall() # 更新记录数量 self.cursor.execute(count_query) total_count = self.cursor.fetchone()[0] self.status_var.set(f"记录数量:{total_count}") # 插入数据 for i, record in enumerate(records, 1): values = (i,) + record[1:] tag = "even" if i % 2 == 0 else "odd" self.tree.insert("", tk.END, values=values, tags=(record[0], tag)) # 配置行样式 self.tree.tag_configure("odd", background="white") self.tree.tag_configure("even", background="#fafafa") def search_data(self): """搜索当前类别的数据""" search_term = self.search_var.get().strip() self.load_data(search_term) def reset_search(self): """重置搜索""" self.search_var.set("") self.load_data() def add_record(self): """添加记录对话框""" dialog = tk.Toplevel(self.root) dialog.title(f"添加{self.current_category}记录") self.center_window(dialog, 620, 520) dialog.resizable(False, False) dialog.transient(self.root) dialog.grab_set() dialog.configure(bg="#f5f5f5") # 移除弹框的蓝色边框 dialog.attributes('-alpha', 1.0) if sys.platform.startswith('win'): dialog.attributes('-toolwindow', False) # 标题栏 header = tk.Frame(dialog, bg="#4285f4", height=40) header.pack(fill=tk.X) header.pack_propagate(False) tk.Label(header, text=f"添加{self.current_category}记录", font=("Microsoft YaHei", 12, "bold"), bg="#4285f4", fg="white").pack(pady=8) # 内容区域 content_frame = tk.Frame(dialog, bg="#f5f5f5", padx=20, pady=10) content_frame.pack(fill=tk.BOTH, expand=True) # 滚动区域 canvas = tk.Canvas(content_frame, bg="#f5f5f5", bd=0, highlightthickness=0) scrollbar = ttk.Scrollbar(content_frame, orient="vertical", command=canvas.yview) scrollable_frame = tk.Frame(canvas, bg="#f5f5f5") scrollable_frame.bind( "<Configure>", lambda e: canvas.configure(scrollregion=canvas.bbox("all")) ) canvas.create_window((0, 0), window=scrollable_frame, anchor="nw") canvas.configure(yscrollcommand=scrollbar.set) canvas.pack(side="left", fill="both", expand=True) scrollbar.pack(side="right", fill="y") # 输入字段 entries = {} columns = self.get_columns()[1:] # 排除序号 for i, col in enumerate(columns): frame = tk.Frame(scrollable_frame, bg="#f5f5f5", pady=6) frame.pack(fill=tk.X) # 标签固定宽度,*放在字段名后面 label_text = f"{col}*" if col in ["档号", "题名"] else col label_color = "#ea4335" if col in ["档号", "题名"] else "#555555" tk.Label(frame, text=label_text, width=12, font=("Microsoft YaHei", 10), bg="#f5f5f5", fg=label_color).pack(side=tk.LEFT, padx=5) # 输入框容器 entry_container = tk.Frame(frame, bg="white", bd=1, relief=tk.SOLID) entry_container.pack(side=tk.LEFT, fill=tk.X, expand=True, padx=2) # 使用统一样式的输入框 entry = ttk.Entry(entry_container, font=("Microsoft YaHei", 10), style="Uniform.TEntry") entry.pack(fill=tk.X, padx=3, pady=3, ipady=1) entries[col] = entry # 按钮区域 btn_frame = tk.Frame(dialog, bg="#f5f5f5", padx=20, pady=15) btn_frame.pack(fill=tk.X) ttk.Button(btn_frame, text="保存", command=lambda: self.save_record(entries, dialog, is_new=True), style="Standard.TButton", width=10).pack(side=tk.LEFT, padx=20) ttk.Button(btn_frame, text="取消", command=dialog.destroy, style="Standard.TButton", width=10).pack(side=tk.LEFT) def edit_record(self): """编辑记录对话框""" selected_items = self.tree.selection() if not selected_items: messagebox.showwarning("提示", "请先选择一条记录!") return selected_item = selected_items[0] record_id = self.tree.item(selected_item, "tags")[0] current_values = self.tree.item(selected_item, "values") # 创建对话框 dialog = tk.Toplevel(self.root) dialog.title(f"修改{self.current_category}记录") self.center_window(dialog, 620, 520) dialog.resizable(False, False) dialog.transient(self.root) dialog.grab_set() dialog.configure(bg="#f5f5f5") # 移除弹框的蓝色边框 dialog.attributes('-alpha', 1.0) if sys.platform.startswith('win'): dialog.attributes('-toolwindow', False) # 标题栏 header = tk.Frame(dialog, bg="#4285f4", height=40) header.pack(fill=tk.X) header.pack_propagate(False) tk.Label(header, text=f"修改{self.current_category}记录", font=("Microsoft YaHei", 12, "bold"), bg="#4285f4", fg="white").pack(pady=8) # 内容区域 content_frame = tk.Frame(dialog, bg="#f5f5f5", padx=20, pady=10) content_frame.pack(fill=tk.BOTH, expand=True) # 滚动区域 canvas = tk.Canvas(content_frame, bg="#f5f5f5", bd=0, highlightthickness=0) scrollbar = ttk.Scrollbar(content_frame, orient="vertical", command=canvas.yview) scrollable_frame = tk.Frame(canvas, bg="#f5f5f5") scrollable_frame.bind( "<Configure>", lambda e: canvas.configure(scrollregion=canvas.bbox("all")) ) canvas.create_window((0, 0), window=scrollable_frame, anchor="nw") canvas.configure(yscrollcommand=scrollbar.set) canvas.pack(side="left", fill="both", expand=True) scrollbar.pack(side="right", fill="y") # 输入字段 entries = {} columns = self.get_columns()[1:] # 排除序号 for i, col in enumerate(columns): frame = tk.Frame(scrollable_frame, bg="#f5f5f5", pady=6) frame.pack(fill=tk.X) # 标签固定宽度,*放在字段名后面 label_text = f"{col}*" if col in ["档号", "题名"] else col label_color = "#ea4335" if col in ["档号", "题名"] else "#555555" tk.Label(frame, text=label_text, width=12, font=("Microsoft YaHei", 10), bg="#f5f5f5", fg=label_color).pack(side=tk.LEFT, padx=5) # 输入框容器 entry_container = tk.Frame(frame, bg="white", bd=1, relief=tk.SOLID) entry_container.pack(side=tk.LEFT, fill=tk.X, expand=True, padx=2) # 使用统一样式的输入框 entry = ttk.Entry(entry_container, font=("Microsoft YaHei", 10), style="Uniform.TEntry") entry.pack(fill=tk.X, padx=3, pady=3, ipady=1) entries[col] = entry # 填充现有值 if i < len(current_values) - 1: entry.insert(0, current_values[i + 1]) # 按钮区域 btn_frame = tk.Frame(dialog, bg="#f5f5f5", padx=20, pady=15) btn_frame.pack(fill=tk.X) ttk.Button(btn_frame, text="保存", command=lambda: self.save_record(entries, dialog, is_new=False, record_id=record_id), style="Standard.TButton", width=10).pack(side=tk.LEFT, padx=20) ttk.Button(btn_frame, text="取消", command=dialog.destroy, style="Standard.TButton", width=10).pack(side=tk.LEFT) def save_record(self, entries, dialog, is_new=True, record_id=None): """保存记录(新增或修改)""" # 收集数据 data = {} for col, entry in entries.items(): data[col] = entry.get().strip() # 验证 if not data["档号"]: messagebox.showerror("错误", "档号不能为空!") return if not data["题名"]: messagebox.showerror("错误", "题名不能为空!") return try: if is_new: # 新增记录到当前类别的对应表 if self.current_category == "文书类": self.cursor.execute(''' INSERT INTO documents (file_number, document_number, responsible, title, date, security_level, page_count, retention_period, carrier_form, remarks) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?) ''', ( data["档号"], data["文号"], data["责任者"], data["题名"], data["日期"], data["密级"], data["页数"] if data["页数"] else None, data["保存期限"], data["载体形式"], data["备注"] )) else: self.cursor.execute(''' INSERT INTO infrastructure (file_number, document_number, responsible, title, date, project_date, security_level, page_count, retention_period, carrier_form, remarks) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) ''', ( data["档号"], data["文号"], data["责任者"], data["题名"], data["日期"], data["工程日期"], data["密级"], data["页数"] if data["页数"] else None, data["保管期限"], data["载体形式"], data["备注"] )) else: # 修改当前类别对应表中的记录 if self.current_category == "文书类": self.cursor.execute(''' UPDATE documents SET file_number = ?, document_number = ?, responsible = ?, title = ?, date = ?, security_level = ?, page_count = ?, retention_period = ?, carrier_form = ?, remarks = ? WHERE id = ? ''', ( data["档号"], data["文号"], data["责任者"], data["题名"], data["日期"], data["密级"], data["页数"] if data["页数"] else None, data["保存期限"], data["载体形式"], data["备注"], record_id )) else: self.cursor.execute(''' UPDATE infrastructure SET file_number = ?, document_number = ?, responsible = ?, title = ?, date = ?, project_date = ?, security_level = ?, page_count = ?, retention_period = ?, carrier_form = ?, remarks = ? WHERE id = ? ''', ( data["档号"], data["文号"], data["责任者"], data["题名"], data["日期"], data["工程日期"], data["密级"], data["页数"] if data["页数"] else None, data["保管期限"], data["载体形式"], data["备注"], record_id )) self.conn.commit() dialog.destroy() self.load_data() messagebox.showinfo("成功", "记录保存成功!") except Exception as e: messagebox.showerror("错误", f"保存失败:{str(e)}") def delete_record(self): """删除记录""" selected_items = self.tree.selection() if not selected_items: messagebox.showwarning("提示", "请先选择一条记录!") return if messagebox.askyesno("确认删除", "确定要删除选中的记录吗?\n此操作不可恢复。"): selected_item = selected_items[0] record_id = self.tree.item(selected_item, "tags")[0] try: if self.current_category == "文书类": self.cursor.execute("DELETE FROM documents WHERE id = ?", (record_id,)) else: self.cursor.execute("DELETE FROM infrastructure WHERE id = ?", (record_id,)) self.conn.commit() self.load_data() messagebox.showinfo("成功", "记录已删除") except Exception as e: messagebox.showerror("错误", f"删除失败:{str(e)}") if __name__ == "__main__": root = tk.Tk() app = FileManagementSystem(root) root.mainloop()

请帮我完善该vue项目在不同分辨率下的响应式设计,要求参考香格里拉酒店官网页面的设计风格:<template> <responsive-image class="hd01" :small-image="hd01.smallImage1" :medium-image="hd01.mediumImage1" :large-image="hd01.largeImage1" alt-text="Description of image" /> {{ $t('Business') }} {{ $t('text7') }} {{ $t("more14") }} {{ $t('trip') }} {{ $t('text8') }} {{ $t("more15") }} <responsive-image class="hd02" :small-image="hd02.smallImage2" :medium-image="hd02.mediumImage2" :large-image="hd02.largeImage2" alt-text="Description of image" /> {{ $t('Guest') }} <RoomSwiper :bannerList="roomBannerList" /> {{ $t('Apartment') }} <RoomSwiper :bannerList="apartBannerList" /> {{ $t('Facilities') }} {{ $t('WiFi') }} {{ $t('individually') }} {{ $t('TV') }} {{ $t('laundry') }} {{ $t('safes') }} {{ $t('coffee') }} {{ $t('Minibar') }}
</template> <script> import RoomSwiper from "@/components/swiper/RoomSwiper.vue"; export default { name: "experience", components: { RoomSwiper, }, data() { return { msg: "Welcome to Your Vue.js App", // 响应式图片数据 hd01: { smallImage1: require("../../assets/experience/hd-01-mobile.jpg"), mediumImage1: require("../../assets/experience/hd-01.png"), largeImage1: require("../../assets/experience/hd-01.png"), }, hd02: { smallImage2: require("../../assets/experience/hd-02-mobile.jpg"), mediumImage2: require("../../assets/experience/hd-02.png"), largeImage2: require("../../assets/experience/hd-02.png"), }, roomBannerList: [ { id: 1, imgUrl: require("../../assets/room/room-01.png"), title: "豪华套房", prompt: "尊享私人空间,尽享奢华体验", }, { id: 2, imgUrl: require("../../assets/room/room-02.png"), title: "豪华楼层/豪华雅致大床房", prompt: "面积约为42平方米,装饰现代,舒适典雅。卧室和大理石浴室设气派的落地窗玻璃,可以俯瞰草原城市胜景或乌兰木伦湖滨美景。", }, { id: 3, imgUrl: require("../../assets/room/room-03.png"), title: "豪华双床房", prompt: "面积约为42平方米,装饰现代,舒适典雅。卧室和大理石浴室设气派的落地窗玻璃,可以俯瞰草原城市胜景或乌兰木伦湖滨美景。", }, ], apartBannerList: [ { id: 1, imgUrl: require("../../assets/room/room-01.png"), title: "豪华套房", prompt: "尊享私人空间,尽享奢华体验", }, { id: 2, imgUrl: require("../../assets/room/room-02.png"), title: "豪华楼层/豪华雅致大床房", prompt: "面积约为42平方米,装饰现代,舒适典雅。卧室和大理石浴室设气派的落地窗玻璃,可以俯瞰草原城市胜景或乌兰木伦湖滨美景。", }, { id: 3, imgUrl: require("../../assets/room/room-03.png"), title: "豪华双床房", prompt: "面积约为42平方米,装饰现代,舒适典雅。卧室和大理石浴室设气派的落地窗玻璃,可以俯瞰草原城市胜景或乌兰木伦湖滨美景。", }, ], }; }, }; </script> <style scoped> /* 全局响应式设置 */ .experience { width: 100%; overflow-x: hidden; } .container { width: 100%; max-width: 2560px; margin: 0 auto; } /* 顶部横幅区域 */ .content-banner { width: 100%; height: 50vh; /* 使用视口高度 */ min-height: 300px; /* 最小高度 */ max-height: 600px; /* 最大高度 */ background-image: url("../../assets/banner/banner-04.jpg"); background-size: cover; background-position: center; background-repeat: no-repeat; } /* 内容区域 */ .content-wrapper { width: 90%; max-width: 1400px; margin: 0 auto; padding: 4rem 0; } /* 商务/旅游模块 - 响应式网格布局 */ .business, .tourism { display: grid; grid-template-columns: repeat(2, 1fr); gap: 4rem; align-items: center; margin: 6rem 0; } /* 文本区域 */ .text-box { flex: 1 1 45%; /* 基础宽度45% */ min-width: 300px; /* 最小宽度 */ } .title-zh { font-size: clamp(2.4rem, 3.5vw, 3.6rem); /* 响应式字体 */ color: rgb(202, 171, 98); margin-bottom: 2rem; } .content { font-size: clamp(1.6rem, 2vw, 2rem); line-height: 1.8; margin: 2rem 0; font-family: "Fangsong"; } .more { display: inline-block; padding: 1rem 2.5rem; font-size: clamp(1.4rem, 1.8vw, 1.6rem); color: rgb(202, 171, 98); background-color: rgb(238, 235, 235); border-radius: 4px; cursor: pointer; transition: all 0.3s ease; } .more:hover { background-color: #e0dcdc; transform: translateY(-2px); } /* 新增底部导航适配 */ .footer { width: 100%; margin-top: auto; /* 确保底部固定 */ } /* 优化视口单位使用 */ :root { --vh: 1vh; } /* 强制图片覆盖容器 */ .responsive-image img { position: absolute; width: 100%; height: 100%; object-fit: cover; /* 关键属性:保持比例填充 */ object-position: center; font-family: 'object-fit: cover'; /* 兼容旧版浏览器 */ } /* 图片容器基础样式强化 */ .img-box { height: auto; max-height: 400px; overflow: hidden; } .img-box img { width: 100%; height: auto; } .img-box:hover img { transform: scale(1.03); } /* 轮播图区域 */ .content-swiper { width: 90%; max-width: 1400px; margin: 0 auto; padding: 4rem 0; } .content-kefang { margin-bottom: 6rem; } .foot-swiper-box { margin-top: 3rem; } /* 设施区域 */ .device { margin-top: 2rem; } .device-content { display: grid; grid-template-columns: repeat(2, 1fr); gap: 4rem; align-items: center; margin-top: 4rem; } .device-list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 2rem; font-size: clamp(1.6rem, 1.8vw, 1.8rem); line-height: 1.8; } .device-list li { position: relative; padding-left: 1rem; } /* 通用类 */ .text-center { text-align: center; } .textEn { font-family: "Times New Roman", Times, serif !important; } /* 新增4K屏幕适配样式 */ @media screen and (min-width: 2560px) { /* 主容器扩展 */ .content-wrapper, .content-swiper { width: 80%; max-width: 2200px; } /* 首图区域优化 */ .content-banner { height: 50vh; /* 全视口高度 */ min-height: 900px; } /* 商务/旅游模块优化 */ .business, .tourism { grid-template-columns: repeat(2, 1fr); gap: 6rem; align-items: stretch; /* 垂直拉伸 */ } /* 文本区域优化 */ .text-box { flex: 1 1 48%; /* 增加基础宽度 */ min-width: 400px; } /* 字体大小增强 */ .title-zh { font-size: clamp(3rem, 4.5vw, 5rem); } .content { font-size: clamp(1.8rem, 2.8vw, 3rem); } .more { font-size: clamp(1.6rem, 2.2vw, 2.4rem); padding: 1.5rem 3rem; } /* 设施列表优化 */ .device-list { grid-template-columns: repeat(3, 1fr); font-size: clamp(1.8rem, 2vw, 2.2rem); } } /* 新增4K+超宽屏适配 */ @media screen and (min-width: 3000px) { .content-wrapper, .content-swiper { width: 90%; max-width: 2800px; } .business, .tourism { gap: 8rem; } .content-banner { background-size: contain; /* 保持背景完整 */ } .device-list { grid-template-columns: repeat(4, 1fr); } } /* 优化现有媒体查询 */ @media screen and (max-width: 1024px) { .content-banner { height: 60vh; } .business, .tourism { gap: 3rem; } } @media screen and (max-width: 768px) { .content-banner { height: 50vh; background-image: url("../../assets/banner/banner-04-mobile.jpg"); } .business, .tourism { grid-template-columns: 1fr; } } </style>

最新推荐

recommend-type

基于MatlabSimulink的纯电动汽车整车仿真模型设计与应用 MatlabSimulink 详细版

如何使用Matlab/Simulink构建纯电动汽车的整车仿真模型。首先阐述了仿真模型的重要性及其在纯电动汽车研发中的关键作用。接着分别讨论了电机模型、电池模型、变速器模型、驾驶员模型和整车动力学模型的具体构建方法和技术细节。每个模型都涵盖了其主要特性及模拟方式,如电机的电气、机械和热特性,电池的电压、电流和温度特性,变速器的齿轮比和传动效率,驾驶员的行为和反应,以及整车的纵向和横向动力学特性。最后,通过整合各子模型并进行仿真测试,展示了如何评估和优化纯电动汽车的整体性能。 适合人群:从事新能源汽车研究的技术人员、高校相关专业师生、汽车行业工程师。 使用场景及目标:适用于需要深入了解纯电动汽车内部机制的研究项目,旨在提高车辆性能、延长续航里程、增强安全性和优化设计流程。 其他说明:文中不仅提供了详细的理论解释,还附有实际操作步骤和案例分析,帮助读者全面掌握仿真建模的方法论。
recommend-type

langchain4j-community-neo4j-retriever-1.0.1-beta6.jar中文文档.zip

1、压缩文件中包含: 中文文档、jar包下载地址、Maven依赖、Gradle依赖、源代码下载地址。 2、使用方法: 解压最外层zip,再解压其中的zip包,双击 【index.html】 文件,即可用浏览器打开、进行查看。 3、特殊说明: (1)本文档为人性化翻译,精心制作,请放心使用; (2)只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; (3)不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 4、温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件。 5、本文件关键字: jar中文文档.zip,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册。
recommend-type

粒子群算法优化离网风光发电储能系统容量配置:混合储能与惯性权重调整 粒子群算法

内容概要:本文探讨了粒子群算法(PSO)在离网风光发电储能系统中的应用,旨在实现全生命周期费用最小化。研究采用了蓄电池与超级电容混合储能系统,通过改变惯性权重和实施超级电容优先放电策略来优化容量配置。首先介绍了混合储能系统的优点及其在平衡风光发电波动性和提高供电可靠性方面的作用。接着详细阐述了粒子群算法的工作原理,包括模型建立、算法初始化、适应度评估、粒子更新与迭代等步骤。最后通过实验验证了该方法的有效性,结果显示随着迭代次数的增加,优化效果更为显著,不仅降低了全生命周期费用,还减少了缺电功率。 适合人群:对新能源发电系统、储能技术和优化算法感兴趣的科研人员和技术开发者。 使用场景及目标:适用于离网风光发电系统的规划与设计,帮助决策者选择最佳的储能设备组合,降低运营成本并提升系统性能。 其他说明:文中提到的方法和策略对于理解和改进现有风光发电储能系统具有重要价值,同时也为未来的相关研究提供了有益的参考。
recommend-type

C#三轴涂胶软件源码:实现多轴插补、自动路径规划及视觉纠偏等功能的工业自动化解决方案 - PLC通讯

内容概要:本文介绍了C#三轴涂胶软件源码及其在实际生产中的应用。该软件集成了多种高级功能,如可编辑轨迹的三轴插补、自动生成特定轨迹路线、相机拍双Mark点轨迹纠偏、更换针头后的相机纠偏、AB胶任意比例出胶、S7与西门子PLC通讯、气缸和真空阀的手动调试、IO点位监控、实时报警和历史报警查询、四级用户权限管控、配方切换以及数据库存储生产信息等。这些功能共同构成了一个高效、稳定且灵活的生产自动化系统。 适合人群:从事工业自动化领域的工程师和技术人员,尤其是那些需要深入了解涂胶工艺和相关控制系统的人群。 使用场景及目标:适用于需要高精度涂胶作业的生产线,旨在提高生产效率、确保产品质量和稳定性。主要目标是帮助用户掌握如何利用C#编程实现复杂的涂胶任务,并提供详细的案例分析和功能介绍。 其他说明:文中详细描述了每个功能的具体实现方式及其应用场景,强调了软件在实际生产环境中的表现和优势。此外,还提到了未来对该软件进一步优化的方向。
recommend-type

基于FPGA的DS1302时钟芯片数据读写显示工程实现与优化

基于FPGA的DS1302时钟芯片的数据读写显示工程。首先,文章解释了DS1302的基本特性和应用场景,强调其成本低廉和广泛应用的特点。接着,重点讲解了如何在不使用任何IP的情况下,利用Verilog语言编写底层代码完成DS1302与时钟芯片之间的通信协议,包括硬件连接方式、状态机的设计思路及其状态转移规则、读写操作的具体实现方法。此外,还提供了详细的仿真测试步骤,确保程序正确无误地运行。最后,针对实际应用中可能出现的问题给出了具体的解决方案,如备用电池切换电路的设计、低功耗优化措施等。 适合人群:对嵌入式系统开发感兴趣的技术爱好者,尤其是希望深入了解FPGA编程及其实现细节的人群。 使用场景及目标:适用于需要精确时间管理的应用场合,比如电子时钟、时间戳记录设备的研发过程中,帮助开发者掌握FPGA与外部器件交互的方法和技术要点。 其他说明:文中附带了完整的Quartus源文件、系统框图、testbench文件以及相关手册,为读者提供了一个全面的学习平台。同时提醒读者关注特定环境下可能存在的兼容性问题,并给出相应的解决办法。
recommend-type

年轻时代音乐吧二站:四万音乐与图片资料库

根据提供的信息,我们可以梳理出以下知识点: ### 知识点一:年轻时代音乐吧二站修正版 从标题“年轻时代音乐吧二站修正版”可以推断,这是一个与音乐相关的网站或平台。因为提到了“二站”,这可能意味着该平台是某个项目或服务的第二代版本,表明在此之前的版本已经存在,并在此次发布中进行了改进或修正。 #### 描述与知识点关联 描述中提到的“近四万音乐数据库”,透露了该音乐平台拥有一个庞大的音乐库,覆盖了大约四万首歌曲。对于音乐爱好者而言,这表明用户可以访问和欣赏到广泛和多样的音乐资源。该数据库的规模对于音乐流媒体平台来说是一个关键的竞争力指标。 同时,还提到了“图片数据库(另附带近500张专辑图片)”,这暗示该平台不仅提供音乐播放,还包括了视觉元素,如专辑封面、艺人照片等。这不仅增强了用户体验,还可能是为了推广音乐或艺人而提供相关视觉资料。 ### 知识点二:下载 影音娱乐 源代码 源码 资料 #### 下载 “下载”是指从互联网或其他网络连接的计算机中获取文件的过程。在这个背景下,可能意味着用户可以通过某种方式从“年轻时代音乐吧二站修正版”平台下载音乐、图片等资源。提供下载服务需要具备相应的服务器存储空间和带宽资源,以及相应的版权许可。 #### 影音娱乐 “影音娱乐”是指以音频和视频为主要形式的娱乐内容。在这里,显然指的是音乐吧平台提供的音乐播放服务,结合上述的图片数据库,该平台可能还支持视频内容或直播功能,为用户提供丰富的视听享受。 #### 源代码 提到“源代码”和“源码”,很可能意味着“年轻时代音乐吧二站修正版”可能是开源的,或者是该平台允许用户下载其应用程序的源代码。在开源的情况下,开发者社区可以查看、修改和分发源代码,促进更多人参与到平台的建设和改进中。 #### 资料 “资料”则指的是与音乐相关的各种信息资料,如歌词、艺人介绍、音乐评论等。该音乐平台可能提供了丰富的背景信息资料,帮助用户更深入地了解音乐及其背后的故事。 ### 知识点三:压缩包子文件的文件名称列表 文件名称列表中仅提到了“年轻时代音乐吧二站修正版”,这可能暗示着整个平台或其下载包是通过压缩技术进行打包和分发的。压缩文件通常用于减少文件大小,以便于网络传输,同时也为用户提供一个集成化的软件包,方便用户一次性下载安装或更新。 ### 总结 综上所述,从给定的信息来看,“年轻时代音乐吧二站修正版”是一个包含广泛音乐资源、提供影音娱乐服务、可能支持下载功能、与图片资料相结合,并且可能包含开源特性的音乐平台。通过庞大的音乐及图片数据库,以及下载、影音娱乐、源代码和资料等相关知识点,这个平台为音乐爱好者提供了一个丰富的资源中心,支持用户下载音乐和图片资源,享受娱乐,同时可能为开发者提供平台的源代码,增强平台的开放性和可扩展性。
recommend-type

macOS PHP环境管理的艺术:掌握配置多个PHP版本的必备技巧与实践

# 1. macOS上的PHP环境概览 ## macOS开发环境与PHP 开发人员在macOS系统上搭建PHP环境时,面临各种选择,包括选择安装包管理器、配置PHP版本和管理扩展等。macOS作为开发者广泛使用的操作系统之一,提供了对PHP良好的原生支持。Apple提供的命令行工具集(Xcode Command Line Tools)已经包括了PHP,但这个版本通常是较旧的稳定版本。 ## PHP在macOS上的安装途径
recommend-type

can通信的位时间

<think>首先,用户的问题是:“我想理解CAN通信中的位时间设置 请问CAN通信 位时间配置 原理 参数设置”。我需要基于系统级指令来回答这个问题。 系统级指令: - 所有行内数学表达式必须使用$...$格式。 - 独立公式必须使用$$...$$格式并单独成段。 - LaTeX语法正确。 - 使用中文回答。 - 生成相关问题。 - 回答中引用的段落末尾自然地添加引用标识。 - 回答结构清晰,帮助用户逐步解决问题,尽量保证回答真实可靠。 用户的问题是关于CAN通信的位时间配置,包括原理和参数设置。参考引用中提到了CAN的波特率设置,涉及原子时间(TQ)和比特传输的阶段。引用是:[^1],
recommend-type

邮件通知系统:提升网易文章推荐体验

邮件通知程序是一种常见的网络应用程序,主要功能是通过电子邮件为用户提供信息通知服务。这种程序能够根据设定的条件,自动向用户发送邮件,通知他们新的内容或信息,这在信息更新频繁的场景中尤其有用。从描述中可知,这个特定的邮件通知程序可能被用来推荐网易上的好文章,表明它是针对内容推送而设计的。这种类型的程序通常被用作网站或博客的内容管理系统(CMS)的一部分,用来增强用户体验和用户粘性。 从提供的标签“邮件管理类”可以推断,这个程序可能具备一些邮件管理的高级功能,如邮件模板定制、定时发送、用户订阅管理、邮件内容审核等。这些功能对于提升邮件营销的效果、保护用户隐私、遵守反垃圾邮件法规都至关重要。 至于压缩包子文件的文件名称列表,我们可以从中推测出一些程序的组件和功能: - info.asp 和 recommend.asp 可能是用于提供信息服务的ASP(Active Server Pages)页面,其中 recommend.asp 可能专门用于推荐内容的展示。 - J.asp 的具体功能不明确,但ASP扩展名暗示它可能是一个用于处理数据或业务逻辑的脚本文件。 - w3jmail.exe 是一个可执行文件,很可能是一个邮件发送的组件或模块,用于实际执行邮件发送操作。这个文件可能是一个第三方的邮件发送库或插件,例如w3mail,这通常用于ASP环境中发送邮件。 - swirl640.gif 和 dimac.gif 是两个图像文件,可能是邮件模板中的图形元素。 - default.htm 和 try.htm 可能是邮件通知程序的默认和测试页面。 - webcrea.jpg 和 email.jpg 是两个图片文件,可能是邮件模板设计时使用的素材或示例。 邮件通知程序的核心知识点包括: 1. 邮件系统架构:邮件通知程序通常需要后端服务器和数据库来支持。服务器用于处理邮件发送逻辑,数据库用于存储用户信息、订阅信息以及邮件模板等内容。 2. SMTP 协议:邮件通知程序需要支持简单邮件传输协议(SMTP)以与邮件服务器通信,发送邮件到用户指定的邮箱。 3. ASP 编程:由于提及了ASP页面,这表明开发邮件通知程序可能用到 ASP 技术。ASP 允许在服务器端执行脚本以生成动态网页内容。 4. 邮件内容设计:设计吸引人的邮件内容对于提高用户互动和兴趣至关重要。邮件模板通常包括文本、图片、链接,以及可能的个性化元素。 5. 用户订阅管理:邮件通知程序需要提供用户订阅和退订的功能,以便用户可以控制他们接收到的信息类型和数量。 6. 邮件发送策略:为了遵守反垃圾邮件法律并提高邮件送达率,邮件通知程序需要实现合理的发送策略,例如定时发送、避免过度发送、邮件列表管理等。 7. 安全性和隐私保护:发送邮件时需要确保邮件内容的安全性和用户隐私,避免敏感信息泄露,并且遵守相关的数据保护法律和规范。 8. 性能优化:邮件通知程序需要有效地处理大量用户的邮件发送请求,保证邮件发送的高效性,并且优化系统性能以应对高峰时段。 9. 用户体验:良好的用户体验设计能够增加用户的互动和满意度,包括清晰的订阅界面、灵活的邮件设置选项、易于理解的通知内容等。 10. 反馈机制:用户对邮件的反馈,如打开率、点击率和退订率,是衡量邮件通知程序效果的重要指标。有效的反馈机制可以帮助改进邮件内容和发送策略。 通过了解这些知识点,我们可以对邮件通知程序的设计、开发和运作有更全面的认识。
recommend-type

【macOS PHP开发环境搭建新手必备】:使用brew一步到位安装nginx、mysql和多版本php的终极指南

# 1. macOS PHP开发环境概述 ## macOS下PHP开发的重要性 在macOS上设置PHP开发环境是开发高效Web应用程序的关键。macOS为开发者提供了一个稳定且用户友好的操作系统环境,结合了Unix的强大功能和苹果的直观界面设计。由于其Linux类似的核心,macOS常被视为Web开发的理想平台,特别是在搭