Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in / Register
Toggle navigation
Q
qiyouxue
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
xuchentao
qiyouxue
Commits
780a2844
Commit
780a2844
authored
Aug 13, 2026
by
tao355667
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: refine teacher section and footer compliance
parent
9204e044
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
14 additions
and
2 deletions
+14
-2
Footer.astro
src/components/Footer.astro
+5
-1
index.astro
src/pages/index.astro
+1
-1
global.css
src/styles/global.css
+8
-0
No files found.
src/components/Footer.astro
View file @
780a2844
...
@@ -7,4 +7,8 @@ import { site } from "../data/site";
...
@@ -7,4 +7,8 @@ import { site } from "../data/site";
<div><h2>了解启优学</h2><a href="/about/">关于我们</a><a href="/methodology/">教学服务</a><a href="/articles/">学习资讯</a><a href="/faq/">常见问题</a></div>
<div><h2>了解启优学</h2><a href="/about/">关于我们</a><a href="/methodology/">教学服务</a><a href="/articles/">学习资讯</a><a href="/faq/">常见问题</a></div>
<div><h2>学习需求</h2>{site.services.map((item) => <a href={`/services/${item.slug}/`}>{item.name}</a>)}</div>
<div><h2>学习需求</h2>{site.services.map((item) => <a href={`/services/${item.slug}/`}>{item.name}</a>)}</div>
<div class="footer-contact"><h2>课程咨询</h2><a class="footer-phone" href={`tel:${site.contact.phone}`}>{site.contact.phoneDisplay}</a><p>周一至周日 · 7×24 小时</p><a href={`mailto:${site.contact.email}`}>{site.contact.email}</a><a class="footer-arrow" href="/contact/">预约学情分析</a></div>
<div class="footer-contact"><h2>课程咨询</h2><a class="footer-phone" href={`tel:${site.contact.phone}`}>{site.contact.phoneDisplay}</a><p>周一至周日 · 7×24 小时</p><a href={`mailto:${site.contact.email}`}>{site.contact.email}</a><a class="footer-arrow" href="/contact/">预约学情分析</a></div>
</div><div class="container footer-bottom"><p>© {new Date().getFullYear()} 启优学一对一</p><p><a href="https://beian.miit.gov.cn/" rel="nofollow">冀ICP备2025133748号-7</a> · 具体课程、教师、时间与费用以咨询确认方案为准</p></div></footer>
</div><div class="container footer-legal">
<div class="footer-legal__row footer-legal__row--primary"><p>Copyright © 2026 启优学一对一 All Rights Reserved</p><nav aria-label="网站备案信息"><a href="https://beian.miit.gov.cn/" rel="nofollow">冀ICP备2025133748号-7</a><a href="https://beian.miit.gov.cn/" rel="nofollow">ICP认证:冀ICP备2025133748号-7</a><a href="https://www.beian.gov.cn/portal/registerSystemInfo?recordcode=13010202004589" rel="nofollow">冀公网安备13010202004589号</a></nav></div>
<div class="footer-legal__row footer-legal__row--report"><p>客服电话:<a href={`tel:${site.contact.phone}`}>{site.contact.phoneDisplay}</a></p><p><a href="https://www.12377.cn/" rel="nofollow">网络有害信息举报</a><span>违法和不良信息举报电话:<a href={`tel:${site.contact.phone}`}>{site.contact.phoneDisplay}</a></span><span>举报邮箱:<a href={`mailto:${site.contact.email}`}>{site.contact.email}</a></span></p></div>
<p class="footer-legal__note">具体课程、教师、时间与费用以咨询确认方案为准</p>
</div></footer>
src/pages/index.astro
View file @
780a2844
...
@@ -31,7 +31,7 @@ const jsonLd = [{ "@context": "https://schema.org", "@type": "Service", name: "
...
@@ -31,7 +31,7 @@ const jsonLd = [{ "@context": "https://schema.org", "@type": "Service", name: "
<section id="workflow" class="section-pad section-white workflow-section"><div class="container"><div class="workflow-head"><div><SectionHeading title="六项课程服务环节" description="从诊断到复盘,每一步都有清楚的任务和可核验标准,家长知道为什么这样安排,学生知道下一步做什么。" /></div><a class="button button--outline" href="/methodology/">查看完整教学服务</a></div><div class="workflow-grid">{site.workflow.map((item) => <article class="workflow-card" data-reveal><div class="workflow-card__marker"><span>{item.number}</span></div><div class="workflow-card__body"><h3>{item.title}</h3><p>{item.desc}</p></div></article>)}</div></div></section>
<section id="workflow" class="section-pad section-white workflow-section"><div class="container"><div class="workflow-head"><div><SectionHeading title="六项课程服务环节" description="从诊断到复盘,每一步都有清楚的任务和可核验标准,家长知道为什么这样安排,学生知道下一步做什么。" /></div><a class="button button--outline" href="/methodology/">查看完整教学服务</a></div><div class="workflow-grid">{site.workflow.map((item) => <article class="workflow-card" data-reveal><div class="workflow-card__marker"><span>{item.number}</span></div><div class="workflow-card__body"><h3>{item.title}</h3><p>{item.desc}</p></div></article>)}</div></div></section>
<section id="teachers" class="section-pad teacher-section"><div class="container teacher-
layout"><div><h2><em>20000+</em> 签约严选教师<br />匹配的不只是学科</h2><p>教师录取率约 3%,85% 以上来自 985 / 211 或重点师范院校,均要求持有教师资格证。教师平均拥有 5-8 年一线教学经验,其中包含省级骨干教师、教研组长及具有阅卷经验的教师;结合四大本地化教研中心,综合学生所在地区、学段、学科、教材进度、当前基础、阶段目标与沟通特点进行匹配。</p><div class="teacher-tags"><span>100% 持证要求</span><span>平均 5-8 年一线经验</span><span>四大本地化教研中心</span><span>固定教师持续跟进</span></div></div><div class="teacher-ledger" data-reveal><div class="ledger-head"><strong>匹配维度</strong></div>{["所在地区与教材版本", "学生学段与意向学科", "当前基础与具体薄弱点", "阶段目标与可用学习时间", "授课节奏与沟通特点"].map((item) => <div><strong>{item}</strong></div>)}
</div></div></section>
<section id="teachers" class="section-pad teacher-section"><div class="container teacher-
profile"><div class="teacher-profile__intro"><h2><em>20000+</em> <span>签约严选教师</span><br />匹配的不只是学科</h2><div><p>教师录取率约 3%,85% 以上来自 985 / 211 或重点师范院校,均要求持有教师资格证。教师平均拥有 5-8 年一线教学经验,其中包含省级骨干教师、教研组长及具有阅卷经验的教师;结合四大本地化教研中心,综合学生所在地区、学段、学科、教材进度、当前基础、阶段目标与沟通特点进行匹配。</p><div class="teacher-tags"><span>100% 持证要求</span><span>平均 5-8 年一线经验</span><span>四大本地化教研中心</span><span>固定教师持续跟进</span></div></div></div><div class="teacher-match" data-reveal><div class="teacher-match__head"><strong>教师匹配会综合这些信息</strong><span>不只看学科,也看教材进度、学习目标和沟通适配度</span></div><div class="teacher-match__grid">{[["地区与教材", "所在地区、教材版本"], ["学段与学科", "学生学段、意向学科"], ["当前学情", "基础与具体薄弱点"], ["阶段安排", "目标与可用学习时间"], ["沟通适配", "授课节奏与沟通特点"]].map(([label, text]) => <article><small>{label}</small><p>{text}</p></article>)}</div>
</div></div></section>
<section class="section-pad section-white"><div class="container faq-preview"><div><SectionHeading title="开始一对一辅导前,家长通常会问" description="把课程适配、教师匹配和学习反馈的重要信息公开说明。" /><a class="text-link" href="/faq/">查看全部常见问题</a></div><div class="faq-list">{site.faq.slice(0, 5).map((item, index) => <details data-reveal open={index === 0}><summary><strong>{item.q}</strong><i></i></summary><div><p>{item.a}</p></div></details>)}</div></div></section>
<section class="section-pad section-white"><div class="container faq-preview"><div><SectionHeading title="开始一对一辅导前,家长通常会问" description="把课程适配、教师匹配和学习反馈的重要信息公开说明。" /><a class="text-link" href="/faq/">查看全部常见问题</a></div><div class="faq-list">{site.faq.slice(0, 5).map((item, index) => <details data-reveal open={index === 0}><summary><strong>{item.q}</strong><i></i></summary><div><p>{item.a}</p></div></details>)}</div></div></section>
...
...
src/styles/global.css
View file @
780a2844
...
@@ -27,3 +27,11 @@
...
@@ -27,3 +27,11 @@
.needs-section
{
background
:
#f1f7ff
}
.needs-layout
{
display
:
grid
;
grid-template-columns
:
.72
fr
1.28
fr
;
gap
:
90px
}
.needs-intro
{
align-self
:
start
}
.needs-intro
h2
{
margin-bottom
:
24px
;
font-size
:
clamp
(
40px
,
4.5vw
,
60px
);
font-weight
:
600
;
letter-spacing
:
-.035em
}
.needs-intro
>
p
:not
(
.subject-overview__label
)
{
max-width
:
430px
;
color
:
var
(
--text-secondary
);
font-size
:
17px
}
.needs-intro
.text-link
{
display
:
inline-block
;
margin-top
:
20px
}
.needs-intro
.text-link
::after
{
margin-left
:
8px
;
content
:
"→"
}
.needs-list
{
border-top
:
2px
solid
var
(
--brand-blue
)}
.needs-list
>
a
{
display
:
grid
;
grid-template-columns
:
44px
1
fr
auto
;
gap
:
20px
;
align-items
:
center
;
padding
:
24px
5px
;
border-bottom
:
1px
solid
#cbdff3
;
transition
:
padding
.2s
,
background
.2s
}
.needs-list
>
a
:hover
{
padding-right
:
14px
;
padding-left
:
14px
;
background
:
rgba
(
255
,
255
,
255
,
.65
)}
.needs-list
>
a
>
span
{
color
:
#6d91b7
;
font-size
:
12px
;
font-weight
:
700
;
letter-spacing
:
.1em
}
.needs-list
h3
{
margin
:
0
0
6px
;
font-size
:
22px
}
.needs-list
p
{
margin
:
0
;
color
:
var
(
--text-secondary
);
font-size
:
14px
}
.needs-list
>
a
>
strong
{
color
:
var
(
--brand-blue
);
font-size
:
12px
;
font-weight
:
600
}
.needs-context
{
display
:
grid
;
grid-template-columns
:
auto
1
fr
1.25
fr
;
gap
:
22px
;
align-items
:
center
;
margin-top
:
48px
;
padding
:
20px
24px
;
border
:
1px
solid
#cbdff3
;
border-radius
:
10px
;
background
:
rgba
(
255
,
255
,
255
,
.62
)}
.needs-context
strong
{
color
:
var
(
--brand-blue
);
font-size
:
13px
}
.needs-context
p
{
margin
:
0
;
color
:
var
(
--text-secondary
);
font-size
:
13px
}
.needs-context
p
:last-child
{
padding-left
:
22px
;
border-left
:
1px
solid
#cbdff3
}
.needs-section
{
background
:
#f1f7ff
}
.needs-layout
{
display
:
grid
;
grid-template-columns
:
.72
fr
1.28
fr
;
gap
:
90px
}
.needs-intro
{
align-self
:
start
}
.needs-intro
h2
{
margin-bottom
:
24px
;
font-size
:
clamp
(
40px
,
4.5vw
,
60px
);
font-weight
:
600
;
letter-spacing
:
-.035em
}
.needs-intro
>
p
:not
(
.subject-overview__label
)
{
max-width
:
430px
;
color
:
var
(
--text-secondary
);
font-size
:
17px
}
.needs-intro
.text-link
{
display
:
inline-block
;
margin-top
:
20px
}
.needs-intro
.text-link
::after
{
margin-left
:
8px
;
content
:
"→"
}
.needs-list
{
border-top
:
2px
solid
var
(
--brand-blue
)}
.needs-list
>
a
{
display
:
grid
;
grid-template-columns
:
44px
1
fr
auto
;
gap
:
20px
;
align-items
:
center
;
padding
:
24px
5px
;
border-bottom
:
1px
solid
#cbdff3
;
transition
:
padding
.2s
,
background
.2s
}
.needs-list
>
a
:hover
{
padding-right
:
14px
;
padding-left
:
14px
;
background
:
rgba
(
255
,
255
,
255
,
.65
)}
.needs-list
>
a
>
span
{
color
:
#6d91b7
;
font-size
:
12px
;
font-weight
:
700
;
letter-spacing
:
.1em
}
.needs-list
h3
{
margin
:
0
0
6px
;
font-size
:
22px
}
.needs-list
p
{
margin
:
0
;
color
:
var
(
--text-secondary
);
font-size
:
14px
}
.needs-list
>
a
>
strong
{
color
:
var
(
--brand-blue
);
font-size
:
12px
;
font-weight
:
600
}
.needs-context
{
display
:
grid
;
grid-template-columns
:
auto
1
fr
1.25
fr
;
gap
:
22px
;
align-items
:
center
;
margin-top
:
48px
;
padding
:
20px
24px
;
border
:
1px
solid
#cbdff3
;
border-radius
:
10px
;
background
:
rgba
(
255
,
255
,
255
,
.62
)}
.needs-context
strong
{
color
:
var
(
--brand-blue
);
font-size
:
13px
}
.needs-context
p
{
margin
:
0
;
color
:
var
(
--text-secondary
);
font-size
:
13px
}
.needs-context
p
:last-child
{
padding-left
:
22px
;
border-left
:
1px
solid
#cbdff3
}
@media
(
max-width
:
760px
){
.needs-layout
{
grid-template-columns
:
1
fr
;
gap
:
42px
}
.needs-intro
h2
{
font-size
:
38px
}
.needs-intro
>
p
:not
(
.subject-overview__label
)
{
font-size
:
15px
}
.needs-list
>
a
{
grid-template-columns
:
34px
1
fr
;
padding
:
22px
0
}
.needs-list
>
a
>
strong
{
display
:
none
}
.needs-list
h3
{
font-size
:
20px
}
.needs-list
p
{
font-size
:
13px
}
.needs-context
{
display
:
block
;
margin-top
:
34px
;
padding
:
20px
}
.needs-context
p
{
margin-top
:
8px
}
.needs-context
p
:last-child
{
margin-top
:
14px
;
padding
:
14px
0
0
;
border-top
:
1px
solid
#cbdff3
;
border-left
:
0
}}
@media
(
max-width
:
760px
){
.needs-layout
{
grid-template-columns
:
1
fr
;
gap
:
42px
}
.needs-intro
h2
{
font-size
:
38px
}
.needs-intro
>
p
:not
(
.subject-overview__label
)
{
font-size
:
15px
}
.needs-list
>
a
{
grid-template-columns
:
34px
1
fr
;
padding
:
22px
0
}
.needs-list
>
a
>
strong
{
display
:
none
}
.needs-list
h3
{
font-size
:
20px
}
.needs-list
p
{
font-size
:
13px
}
.needs-context
{
display
:
block
;
margin-top
:
34px
;
padding
:
20px
}
.needs-context
p
{
margin-top
:
8px
}
.needs-context
p
:last-child
{
margin-top
:
14px
;
padding
:
14px
0
0
;
border-top
:
1px
solid
#cbdff3
;
border-left
:
0
}}
.hero-subhead
span
{
display
:
block
}
.hero-subhead
span
+
span
{
margin-top
:
3px
}
.hero-subhead
span
{
display
:
block
}
.hero-subhead
span
+
span
{
margin-top
:
3px
}
.footer-legal
{
margin-top
:
55px
;
padding
:
22px
0
25px
;
border-top
:
1px
solid
rgba
(
255
,
255
,
255
,
.3
);
color
:
rgba
(
255
,
255
,
255
,
.72
);
font-size
:
11px
}
.footer-legal
p
{
margin
:
0
}
.footer-legal
a
{
color
:
rgba
(
255
,
255
,
255
,
.88
)}
.footer-legal
a
:hover
{
text-decoration
:
underline
}
.footer-legal__row
{
display
:
flex
;
align-items
:
flex-start
;
justify-content
:
space-between
;
gap
:
30px
}
.footer-legal__row
nav
,
.footer-legal__row--report
>
p
:last-child
{
display
:
flex
;
flex-wrap
:
wrap
;
justify-content
:
flex-end
;
gap
:
8px
22px
}
.footer-legal__row
nav
a
,
.footer-legal__row--report
>
p
:last-child
>*
{
position
:
relative
}
.footer-legal__row
nav
a
+
a
::before
,
.footer-legal__row--report
>
p
:last-child
>*+*
::before
{
position
:
absolute
;
top
:
0
;
left
:
-12px
;
color
:
rgba
(
255
,
255
,
255
,
.28
);
content
:
"·"
}
.footer-legal__row--report
{
margin-top
:
12px
;
padding-top
:
12px
;
border-top
:
1px
solid
rgba
(
255
,
255
,
255
,
.12
)}
.footer-legal__row--report
>
p
:first-child
{
flex
:
none
}
.footer-legal__note
{
margin-top
:
12px
!important
;
color
:
rgba
(
255
,
255
,
255
,
.48
)}
@media
(
max-width
:
760px
){
.footer-legal
{
margin-top
:
42px
;
padding-bottom
:
28px
}
.footer-legal__row
{
display
:
block
}
.footer-legal__row
nav
,
.footer-legal__row--report
>
p
:last-child
{
justify-content
:
flex-start
;
margin-top
:
9px
;
gap
:
7px
18px
}
.footer-legal__row
nav
a
+
a
::before
,
.footer-legal__row--report
>
p
:last-child
>*+*
::before
{
left
:
-10px
}
.footer-legal__row--report
{
margin-top
:
16px
;
padding-top
:
16px
}
.footer-legal__row--report
>
p
:last-child
span
{
display
:
block
;
width
:
100%
}
.footer-legal__row--report
>
p
:last-child
span
::before
{
display
:
none
}
.footer-legal__note
{
margin-top
:
16px
!important
}}
.footer-legal__row--report
{
margin-top
:
18px
;
padding-top
:
0
;
border-top
:
0
}
@media
(
max-width
:
760px
){
.footer-legal__row--report
{
margin-top
:
20px
;
padding-top
:
0
}}
.teacher-profile__intro
{
display
:
grid
;
grid-template-columns
:
.9
fr
1.1
fr
;
gap
:
88px
;
align-items
:
start
}
.teacher-profile__intro
h2
{
margin
:
0
;
font-size
:
clamp
(
38px
,
4.6vw
,
60px
);
letter-spacing
:
-.04em
}
.teacher-profile__intro
h2
em
{
color
:
var
(
--brand-blue
);
font-style
:
normal
}
.teacher-profile__intro
>
div
>
p
{
margin
:
4px
0
0
;
color
:
var
(
--text-secondary
);
font-size
:
17px
}
.teacher-match
{
margin-top
:
52px
;
overflow
:
hidden
;
border-top
:
2px
solid
var
(
--brand-blue
);
border-bottom
:
1px
solid
#bfd8f3
}
.teacher-match__head
{
display
:
flex
;
align-items
:
baseline
;
justify-content
:
space-between
;
gap
:
30px
;
padding
:
20px
4px
18px
}
.teacher-match__head
strong
{
font-size
:
18px
}
.teacher-match__head
span
{
color
:
#58738e
;
font-size
:
13px
}
.teacher-match__grid
{
display
:
grid
;
grid-template-columns
:
repeat
(
5
,
1
fr
);
border-top
:
1px
solid
#c8def5
}
.teacher-match__grid
article
{
min-height
:
112px
;
padding
:
20px
20px
22px
;
border-right
:
1px
solid
#c8def5
}
.teacher-match__grid
article
:first-child
{
padding-left
:
4px
}
.teacher-match__grid
article
:last-child
{
border-right
:
0
}
.teacher-match__grid
small
{
display
:
block
;
margin-bottom
:
9px
;
color
:
var
(
--brand-blue
);
font-size
:
12px
;
font-weight
:
700
}
.teacher-match__grid
p
{
margin
:
0
;
color
:
var
(
--text-primary
);
font-size
:
14px
;
line-height
:
1.65
}
@media
(
max-width
:
760px
){
.teacher-profile__intro
{
grid-template-columns
:
1
fr
;
gap
:
26px
}
.teacher-profile__intro
h2
{
font-size
:
40px
}
.teacher-profile__intro
>
div
>
p
{
font-size
:
15px
}
.teacher-match
{
margin-top
:
38px
}
.teacher-match__head
{
display
:
block
;
padding
:
18px
0
}
.teacher-match__head
span
{
display
:
block
;
margin-top
:
7px
;
line-height
:
1.6
}
.teacher-match__grid
{
grid-template-columns
:
1
fr
1
fr
}
.teacher-match__grid
article
,
.teacher-match__grid
article
:first-child
{
min-height
:
106px
;
padding
:
17px
14px
;
border-right
:
1px
solid
#c8def5
;
border-bottom
:
1px
solid
#c8def5
}
.teacher-match__grid
article
:nth-child
(
even
)
{
border-right
:
0
}
.teacher-match__grid
article
:last-child
{
grid-column
:
1
/
3
;
border-right
:
0
;
border-bottom
:
0
}
.teacher-match__grid
article
:nth-last-child
(
2
)
{
border-bottom
:
0
}}
.teacher-profile__intro
h2
>
span
{
display
:
inline-block
;
white-space
:
nowrap
}
@media
(
min-width
:
761px
){
.teacher-profile__intro
{
grid-template-columns
:
1.08
fr
.92
fr
;
gap
:
78px
}}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment