FCC前端开发项目

FreeCodeCamp-Projects

本文记录我在fcc中文社区刷的题,做的小项目。

Responsive Web Design Projects

响应式网页设计项目。在此之前已经学过基本的知识,一天内把前面的小练习做完,现在是时候把学到的技能付诸实践了!通过接下来的项目,fcc让我有机会实践目前所学的技能,原理和概念,HTML,CSS,可视化设计,辅助功能等。

  1. 搭建致敬页
  2. 搭建调查表格
  3. 搭建产品主页
  4. 搭建技术文档页面
  5. 搭建个人作品集页面

致敬页

fcc题目(需求)地址

我制作的页面地址

这个页面制作简单,很基本的页面,但有一个地方需要注意:

```img`元素应相对于其父元素的宽度响应地调整大小,但不超过其原始大小。``

我一开始忽略了这个需求,看错误报告也发下缩小页面后图片呢不能自适应,对于手机端来说更是个大问题,所以为图片添加css样式

#image {
			max-width:100%;
			height:auto; 
			margin:0 auto;
}

如此一来图片可以随着拉伸页面进行自适应了,问题也就解决了。( •̀ ω •́ )y

调查表单

fcc题目(需求)地址

我制作的页面地址

给网页添加了背景图,但是发现这样会使文字看不清,想要实现背景图和颜色遮罩,我一开始想要使用伪类元素解决:

body::after{
   
  position:absolute;
  content:"";
  width:100%;
  height:100%;
  top:0;
  left:0;
  background: rgba(255, 255, 255, 0.2);
}

出现文字也被遮罩,所以我使用添加新标签,添加css为

main {
   
  background: rgba(255, 255, 255, 0.2);
  width:100%;
  height:100%;
  position:absolute;
}

可以实现。

但是当内容高度大于窗口高度,需要滑动滚动条时,出现问题:

下方没有了遮盖,检查代码发现main标签添加了绝对定位absolute,虽然高度为100%,那是针对浏览器窗口大小所定的,并非随着body大小而改变,将

position:absolute;

去掉即可 。(尽量让代码简洁,不要出现多余的代码😵)

制作表单,让其居中时发现form始终无法居中,分析原因是form本身只是一个表单,对页面根本没有布局的作用,因此无法居中,解决方法是在form外面嵌套div标签,给div标签添加css样式text-align:center;解决。

产品登录页

题目需求页面

我制作的网页

运用flexbox可以布局灵活的页面.

#nav-bar {
   
  width: 50%;
  float: right;
  display: flex;
  flex-flow: row wrap;
  align-items: center;
  justify-content: space-around;
}
footer {
   
  display: flex;
  flex-flow: row wrap;
  align-items: center;
}

媒体查询也是响应式布局的好方法。当视口宽度最大值小于400px时,padding:0;

@media (max-width: 400px) {
   
  .nav-link {
   
    padding:0;
  }
}

使用iframe给网页嵌入视频,点击全屏无反应,查阅资料说不建议使用iframe,bug多,改用video标签引入后可以使用。

<video src="http://www.w3school.com.cn/i/movie.ogg" controls>
//此处可以添加多个<source></source>  添加多个视频格式不一样,解决浏览器兼容性问题。
</video> 

flexbox和媒体查询的使用较为生疏,多使用才能熟练掌握。

技术文档

题目需求页面

我制作的网页地址

设计可以滚动的侧边导航栏:

#navbar {
   
  position: fixed;
  top: 0;
  left: 0;
  min-width: 290px;
  height: 100%;
  width:300px;
  text-align: center;
}
.uu {
   
  /* 100%则没有滚动的空间 */
  height: 88%;
  /* 滚动条的设置 */
  overflow-y: auto;
  overflow-x: hidden;
  margin-top: 20px;
  border-right: 5px solid #ccc;
}

媒体查询

@media only screen and (max-width:800px)
{
   
/* 响应手机端 */
  #navbar ul{
   
    border:1px solid #ccc;
    height:200px;
  }
  #navbar{
   
    position:absolute;   //浮在页面最上方
    width:100%;           //视口宽度
    max-height:270px;
    border:1px solid blue;
  }
}

个人网站

题目需求页面

我制作的页面

插入图片下方有缝隙

添加图片样式,解决

vertical-align:bottom;

flexgrid是当前流行的布局方法。Grid 布局与 Flex 布局有一定的相似性,都可以指定容器内部多个项目的位置。但是,它们也存在重大区别。

Flex 布局是轴线布局,只能指定"项目"针对轴线的位置,可以看作是一维布局。Grid 布局则是将容器划分成"行"和"列",产生单元格,然后指定"项目所在"的单元格,可以看作是二维布局。Grid 布局远比 Flex 布局强大。

我一开始使用flex布局实现下图:

#flexx{
    /*父盒子*/
  width:100%;
  display:flex;
  flex-flow: row wrap;
  justify-content:space-around;
  align-items:center;
  align-content:space-around;
}
#flexx div{
    /*子盒子*/
  width:400px;
  height:450px;
  display:flex;
}

使用grid布局

#usegrid{
   
  width:100%;
  display:grid;
  grid-gap:50px;  
  grid-template-columns:repeat(auto-fit,minmax(320px,1fr));
  max-width:1280px;
  padding:0 20px;
  margin: 0 auto; //居中。
}

同样可以实现,更为方便。

在为project-title两边添加隐藏尖括号,鼠标悬停时显示时,使用

.code{
   
	display:none;
}
.code:hover{
   
	display:inline-block;
}

导致文字位置发生移动。因为display:none;不会保留元素位置。

使用visibility可以解决,隐藏时保留位置。

.code{
   
	visibility:hidden;
}
.code:hover{
   
	visibility:visible;
}

如果是文字的话,可以把内容颜色设为与背景色一致,悬停时改变颜色。

这几个小项目难度不大,但是需要留意小细节的地方,可以学到响应式布局的方法和技巧。有不对的地方请大佬们不吝指教,会持续更新~~

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务