bookmark_border부트스트랩 소개 및 활용

부트스트랩 소개 및 활용

부트스트랩

  • 웹 디자인을 목적으로 하는 오픈 소스의 Framework
  • CSS와 JAVA 스크립트로 이루어진 라이브러리
  • 트위터 내부의 인터페이스 일관성을 목적으로 개발(Blue Print)
  • 오픈 소스로 공개되면서 Bootstrap으로 바뀜

프레임 워크 (Framework)

  • 소프트웨어의 생산성 문제 때문에 개발된 방법
  • 반복된 구조나 기능들을 추상화 시켜 재사용을 가능하도록 하는 소프트웨어 환경

Bootstrap의 장점

  • 저렴한 비용
    • 오픈소스 이기 때문에 무료로 이용 가능
    • 저렴한 비용으로 다양한 테마 구매 가능
  • 시간 절약
    • 웹 페이지를 만들 때, 코딩에 대한 부담 감소
    • HTML, CSS 코드가 이미 형성 되어 있음
  • 사용하기 간편한 그리드 시스템
    • 태블릿, 스마트폰 등 다양해지는 화면의 사이즈에 맞게 비율에 따라 디자인 가능
  • 모바일 자동 적용(반응형)
    • 다양한 디바이스 크기에 맞게 요소 배치
    • 모바일 우선 지원
    • Desktop용 제작 > mobile용 자동으로 제작

Bootstrap의 단점

  • 기존 set-up과의 충돌
    • 기존에 제작된 코드들과 새로운 코딩들이 충돌, 버그 발생
  • 대용량
    • 부트스트랩 전부를 이용할 경우 126KB의 CSS와 29KB의 자바 스크립트 포함
    • 로딩 시간 길어짐, 모바일 배터리 문제
  • 보편화
    • 자체적으로 디자인한 것에 비해
    • 공장에서 찍어낸 듯한 느낌을 피하기가 어려움
  • 불필요한 class들 발생
    • 도메인 객체 모델이 불필요한 class로 가득 채워 짐
    • 좋은 웹디자인 규칙을 어김

부트스트랩 적용

<!-- 합쳐지고 최소화된 최신 CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css">

<!-- 부가적인 테마 -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap-theme.min.css">

<!-- 합쳐지고 최소화된 최신 자바스크립트 -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/js/bootstrap.min.js"></script>
<p class="text-left">좌측정렬된 텍스트.</p>
<p class="text-center">중앙정렬된 텍스트.</p>
<p class="text-right">우측정렬된 텍스트.</p>
<p class="text-justify">양쪽정렬된 텍스트.</p>
<p class="text-nowrap">그냥 텍스트.</p>
<!-- 순서없는 -->
<ul>
  <li>...</li>
</ul>

<!-- 순서있는 -->
<ol>
  <li>...</li>
</ol>

<!-- 스타일 없는 -->
<ul class="list-unstyled">
  <li>...</li>
</ul>

<!-- 한줄로 보여주는 -->
<ul class="list-inline">
  <li>...</li>
</ul>
<!-- 기본예제 -->
<table class="table">
  ...
</table>

<!-- 줄무늬 행 -->
<table class="table table-striped">
  ...
</table>

<!-- 맥락적인 클래스들 -->
<!-- `tr`, `td`, `th` 모두 사용 가능 -->
<tr>
  <td class="active">...</td>
  <td class="success">...</td>
  <td class="warning">...</td>
  <td class="danger">...</td>
  <td class="info">...</td>
</tr>

<!-- 반응형 웹 테이블 -->
<div class="table-responsive">
  <table class="table">
    ...
  </table>
</div>

부트스트랩을 이용한 설문조사 문서

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <!-- 합쳐지고 최소화된 최신 CSS -->
        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css">
        <title>나의 설문조사</title>
    </head>
    <body>
        <h2>설문조사</h2>
        <form>
            <h3>설문자</h3>
            <div class="form-group">
              <label for="exampleInputEmail1">이메일 주소</label>
              <input type="email" class="form-control" id="exampleInputEmail1" placeholder="이메일을 입력하세요">
            </div>
            <div class="form-group">
              <label for="exampleInputPassword1">암호</label>
              <input type="password" class="form-control" id="exampleInputPassword1" placeholder="암호">
            </div>
            <h3>학년를 선택하시오</h3>
            <div class="radio"><label><input type="radio" name="학년" value="1학년">1학년<br></label></div>
            <div class="radio"><label><input type="radio" name="학년" value="2학년">2학년<br></label></div>
            <div class="radio"><label><input type="radio" name="학년" value="3학년">3학년<br></label></div>
            <div class="radio"><label><input type="radio" name="학년" value="4학년">4학년<br></label></div>
            <h3>HTML부터 웹앱까지를 듣는 이유는?</h3>
            <div class="checkbox"><label><input type="checkbox" name="홈페이지를 만들고 싶어서" value="수강이유">홈페이지를 만들고 싶어서</label></div>
            <div class="checkbox"><label><input type="checkbox" name="실무전산 필수학점을 위해서" value="수강이유">실무전산 필수학점을 위해서</label></div>
            <div class="checkbox"><label><input type="checkbox" name="김근우 교수님과의 교제를 위해서" value="수강이유">김근우 교수님과의 교제를 위해서</label></div>
            <div class="checkbox"><label><input type="checkbox" name="그냥" value="수강이유">그냥</label></div>
            <h3>학기수를 선택하시오</h3>
            <select class="form-control">
                <option>1</option>
                <option>2</option>
                <option>3</option>
                <option>4</option>
                <option>5</option>
              </select>
            <!-- <button type="submit" class="btn btn-default">제출</button> -->
            <input class="btn btn-default" type="submit" value="전송하기"></input>
            <input class="btn btn-danger" type="reset" value="취소하기"></input>            
        </form>
        <!-- 합쳐지고 최소화된 최신 자바스크립트 -->
        <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/js/bootstrap.min.js"></script>
    </body>
</html>

bookmark_border존재란 무엇인가?

존재란 무엇인가?

우주는 왜 존재하는가? : 스티븐 와인버그 : 인류원리

  • 우주는 왜 존재할까?
    • 존재할 확률이 0%에 가까운데…
  • 지구에 왜 지적 생명체인 인간이 존재할까?
    • 딱 적정한 태양과 지궁의 거리 1억 5,000만 킬로미터, 이것은 기적.
  • 우주의 존재이유 (3가지)
    • 신이 우주 창조 : 확률 따위는 문제가 안됨
    • 우주가 생겨날 경우의 수는 어마어마하게 많았다는 것. 끈이론에 따르면 생겨날 수 있는 우주의 종류가 10의 500승 개.
    • 인류원리
  • 인류원리
    • 스티븐 와인버그
    • 지적생명체가 출현하기에 적합한 환경을 가진 우주가 존재하는 이유는 지적생명체인 인간이 이 우주에 존재하기 때문
    • 천재 돌고래가 생각하는 바다의 존재 이유
    • 반론 : 인간이 존재하기 때문에 우주가 존재한다?

박쥐가 되어본다는 것 : 물리주의(feat. 메리, 좀비, 박쥐)

  • 인간에게 영혼이 존재할까?
인간에게 영혼은 존재하는가? 존재한다
육체 + 영혼
실체 이원론
존재하지 않는다
육체
실체 일원론(물리주의)
심적 속성은 물리적 속성으로 환원되는가? 환원 안된다
속성 이원론
환원 안된다
속성 이원론
비환원적 물리주의
환원 된다
속성 일원론
환원적 물리주의
  • 환원적 물리주의
    • 행동주의
    • 유형 동일론
    • 기능주의
  • 비환원적 물리주의
    • 프랭크 잭슨의 ‘메리의 방’
      • 회색방에서 색에 대한 전문가 > 밖의 사과색에 대한 감각질은 결코 물리적으로 환원되지 않는다. 즉 물리적으로 설명이 안된다
    • 데이비드 차머스의 좀비 논변
    • 토마스 네이글의 박쥐 논변
      • 박쥐만이 박쥐의 느낌을 안다

bookmark_border시간이란 무엇인가?

시간이란 무엇인가?

아인슈타인에게 딴지 건 철학자 : 베르그송 : 순수 지속으로서의 시간

  • 시간의 공간화
    • 주거지역, 상업지역, 공장지역
    • 출근시간, 수면시간, 운동시간
    • 월드컵 시즌이 다가온다.
    • 사건이 뒤로 갈수록 미궁으로 빠져든다.
    • This technique has been passed down to the present day.
    • 공간은 왔다갔다 하지만, 시간은 그렇지 못한다.
  • 제논의 역설과 시간과 공간
    • 제논의 화살
    • 화살은 끊임없이 중간 지점을 통과해야 하므로 유한한 시간내에 도달할 수 없다.
    • 나는 화살은 날지 않는다. 즉, 운동은 불가능하다.
  • 베르그송
    • 운동은 결코 나눌 수 없는데, 운동을 나누었기 때문에 이런 말도 안되는 역설이 생겼다.
    • 운동은 일정 시간 동안 공간의 위치가 변하는 것
    • 시간을 나눌 수 없으므로 운동도 나눌 수 없다.
    • “시간은 존재한다. 그리고 그것은 공간이 아니다.”
  • 순수 지속으로서의 시간
    • 순수한 지속은 명확한 윤곽도 없고, … 수와의 어떠한 유사성도 없이, 서로 녹아들고 서로 침투하는 질적인 변화의 연속이다.
  • 베르그송과 아이슈타인
    • 특수상대성 이론 : 움직이는 대상의 시간이 느려짐
      • 이때 느려지는 것은 시간 자체가 아니라 시계의 속도와 운동의 속도라고 주장
      • 베르그송은 이후 자신이 상대성이론의 몇몇 개념들을 잘못 이해했다고 인정.

시간이란 무엇입니까?

아무도 묻는 이가 없으면
나는 그것을 아는 것 같지만,

막상 누가 물어 대답을 하려면
말문이 막힙니다.

아우구스티누스 – 고백록

bookmark_border시간과 공간이란 무엇인가?

시간과 공간이란 무엇인가?

우주에 손만 하나 남는다면… : 뉴턴과 라이프니츠 : 시간과 공간이론

  • 숙명의 라이벌 : 뉴턴과 라이프니츠
  • 태초부터 시간과 공간은 있었다 – 뉴턴
    • 절대주의
    • 신의 천지창조 이전에도 시간과 공간은 있었다.
    • 이는 신의 ‘감각기관’과 같은 것이다.
    • 영원히 존재한다.
  • 태초 이전에 시간과 공간은 없었다 – 라이프니츠
    • 관계주의
    • ‘우주 밖에는 무엇이 있는가?’ ‘신은 우주를 언제 창조했는가’의 문제가 무의미
    • ‘우주밖’ ‘언제’를 쓸 수 없음
  • 칸트의 오른손 왼손 문제
    • 우주에 달랑 손 하나만 남는다면 오른손이거나 왼손인가? 아니면 오른손도 왼손도 아닌가?
  • 아이슈타인 상대성 이론
    • 시간과 공간을 하나의 4차원 시공간 차원으로 보게 됨
    • 그러나 ‘ 시공간은 물질에 관계 없이 절대적으로 존재하는가? 아니면 물체들 간의 관계일 뿐인가?’의 논쟁은 계속됨

bookmark_border보편자는 존재하는가?

보편자는 존재하는가?

인간은 존재하는가? : 보편논쟁(feat. 실재론, 유명론, 온건 실재론)

  • 조선 17대왕 효종 사망시 계모 자의대비가 상복을 몇 년 입어야 하는지를 묻는 예송논쟁
    • 서인 1년 주장, 남인 3년 주장
    • 권력 다툼의 문제
  • 보편논쟁 : 보편자는 실재할까?
    • 나, 트럼프, 이성계 존재 외에 ‘인간’이라는 보편자가 존재하는가?
    • 실재론
      • 개별자들이 모두 인간일 수 있는 이유는 ‘인간’이라는 보편자가 존재하기 때문
    • 유명론
      • 보편자는 이름일 뿐 존재하는것이 아님
    • 온건실재론
      • 보편자가 존재하기는 하는데, 개별적인 인간들 안에 존재
      • 따라서 인간이 사라지면 보편자로서의 인간도 사라짐 (cf: 실재론은 별개로 존재)
  • 보편논쟁에 대한 종교적 해석
    • 인간의 원죄 : 아담과 이브가 나와 연관이 있는가의 문제
    • 예수 때문에 구원 받을 수 있는가?
      • 보편인간이기 때문
    • 삼위일체의 문제 (성부, 성자, 성령은 모두 하나님)
      • 실재론 주장
  • 철학적 계보
    • 실재론
      • 이데아 > 기독교 > 실재론
      • 플라톤 > 플로티노스, 아우구스티누스 > 에리우게나, 안셀무스, 기욤
    • 온건실재론
      • 아리스토텔레스 > 이벨라르두스 > 아퀴나스
    • 유명론
      • 로스켈리누스 > 스코투스 > 오컴의 윌리엄

bookmark_borderCSS 고급활용

전환 : CSS Transitions

<style> 
div {
  width: 100px;
  height: 100px;
  background: red;
  transition: width 2s;
}

div:hover {
  width: 300px;
}
</style>
...
<p>Hover over the div element below, to see the transition effect:</p>
<div></div>
...

애니메이션 : CSS Animations

<style> 
div {
  width: 100px;
  height: 100px;
  background-color: red;
  animation-name: example;
  animation-duration: 4s;
}

@keyframes example {
  from {background-color: red;}
  to {background-color: yellow;}
}
</style>
...
<div></div>
<p><b>Note:</b> When an animation is finished, it goes back to its original style.</p>
...

그래디언트 : CSS Gradients

<style>
#grad1 {
  height: 200px;
  background-color: red; /* For browsers that do not support gradients */
  background-image: linear-gradient(to bottom right, red, yellow);
}
</style>
...
<p>This linear gradient starts red at top left, transitioning to yellow (at bottom right):/p>
<div id="grad1"></div>
...

텍스트 그림자 효과 : CSS Shadow Effects

<style>
h1 {
  color: white;
  text-shadow: 1px 1px 2px black, 0 0 25px blue, 0 0 5px darkblue;
}
</style>
...
<h1>Text-shadow effect!</h1>
...

상자 그림자 효과 : CSS Box Shadow

Text Card Shadow
<style>
div.card {
  width: 250px;
  box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
  text-align: center;
}

div.header {
  background-color: #4CAF50;
  color: white;
  padding: 10px;
  font-size: 40px;
}

div.container {
  padding: 10px;
}
</style>
...
<div class="card">
  <div class="header">
    <h1>1</h1>
  </div>
  <div class="container">
    <p>January 1, 2021</p>
  </div>
</div>
...
Image Shadow
<style>
div.polaroid {
  width: 250px;
  box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
  text-align: center;
}

div.container {
  padding: 10px;
}
</style>
...
<div class="polaroid">
  <img src="rock600x400.jpg" alt="Norway" style="width:100%">
  <div class="container">
    <p>Hardanger, Norway</p>
  </div>
</div>
...

페이징 : CSS Pagination Examples

<style>
.pagination {
  display: inline-block;
}

.pagination a {
  color: black;
  float: left;
  padding: 8px 16px;
  text-decoration: none;
}

.pagination a.active {
  background-color: #4CAF50;
  color: white;
}

.pagination a:hover:not(.active) {background-color: #ddd;}
</style>
...
<div class="pagination">
  <a href="#">&laquo;</a>
  <a href="#">1</a>
  <a class="active" href="#">2</a>
  <a href="#">3</a>
  <a href="#">4</a>
  <a href="#">5</a>
  <a href="#">6</a>
  <a href="#">&raquo;</a>
</div>
...

툴팁 : CSS Tooltip

<style>
.tooltip {
  position: relative;
  display: inline-block;
  border-bottom: 1px dotted black;
}

.tooltip .tooltiptext {
  visibility: hidden;
  width: 120px;
  background-color: black;
  color: #fff;
  text-align: center;
  border-radius: 6px;
  padding: 5px 0;

  /* Position the tooltip */
  position: absolute;
  z-index: 1;
}

.tooltip:hover .tooltiptext {
  visibility: visible;
}
</style>
...
<div class="tooltip">Hover over me
  <span class="tooltiptext">Tooltip text</span>
</div>
...

2D변형 – rotate, scale, translate : CSS 2D Transforms

<style>
div {
  width: 300px;
  height: 100px;
  background-color: yellow;
  border: 1px solid black;
}

div#myDiv {
  transform: rotate(20deg);
}
</style>
...
<div>
This a normal div element.
</div>

<div id="myDiv">
This div element is rotated clockwise 20 degrees.
</div>
...
<style> 
div {
  width: 300px;
  height: 100px;
  background-color: yellow;
  border: 1px solid black;
  transform: translate(50px,100px);
}
</style>
...
<div>
This div element is moved 50 pixels to the right, and 100 pixels down from its current position.
</div>
...

과제 : 0305-css-homework-1.html

bookmark_border워드프레스 달력 스타일 변경

기본 달력의 모양이 심심하여 스타일을 변경함.

관리자 > 테마디자인 > 사용자 정의하기 > 추가 CSS 에 CSS 추가

참고 : Better WordPress Calendar Widget Sass/CSS Styles

/* calendar widget */
.widget_calendar {float: left;}
#wp-calendar {
	width: 100%;
	max-width: 37.5rem;
	background: #ccc;
	margin-left: auto;
	margin-right: auto;
	font-size: 12px;
}

#wp-calendar caption { 
   text-align: right;
   color: #333;
   font-size: 13px;
   margin-top: 5px;
   margin-bottom: 5px;
}

#wp-calendar thead tr {
	border: 1px solid #ccc;
}

#wp-calendar thead th {
	font-size: 90%;
	font-weight: bold;
	padding: 0.5rem;
	background: #ccc;
	text-transform: uppercase;
	text-align: center;
}

#wp-calendar tbody td {
	position: relative;
	padding: 0.25rem;
	text-align: center;
	border: 1px solid #ccc;
	background: #fff;
}

#wp-calendar tbody td.pad {
	opacity: 0.7;
}

#wp-calendar tbody td#today {
	font-weight: bold;
}

#wp-calendar tbody td a {
	display: block;
	background: rgba(50, 153, 187, 0.2);
}

#wp-calendar tbody td a:hover {
	background: #3299bb;
	color: #fff;
}

#wp-calendar tfoot tr {
	background: rgba(255, 255, 255, 0.7);
	border: 1px solid #ccc;
}

#wp-calendar tfoot tr td {
	border: 0;
	padding: 0;
}

#wp-calendar tfoot tr a {
	display: block;
	padding: 0.25rem 0.75rem;
}

#wp-calendar tfoot tr a:hover {
	background: #fff;
}

#wp-calendar tfoot tr #prev {
	text-align: left;
}

#wp-calendar tfoot tr #next {
	text-align: right;
}

bookmark_borderAre personalised diets the best way to be healthy?

Are personalised diets the best way to be healthy?

  • what counts is not what you eat but how your body reacts.
  •  gut – the tube which includes the large and small intestine.
  • microbes
  • 5.5 metres : five and half metres
  • If evidence is flimsy, it’s weak and unconvincing.
  • realise = realize 
  •  if something sticks out of the crowd, it’s noticeable in a good way.
  • the more diverse someone’s microbes, the better their gut was at digesting food, regulating fat and maintaining health. 
  • that took ‘guts’, which is the second meaning of the word: courage.

bookmark_borderCSS 기초 활용

CSS 테두리 : CSS Border Style

<style>
p.dotted {border-style: dotted;}
p.dashed {border-style: dashed;}
p.solid {border-style: solid;}
</style>
...
<p class="dotted">A dotted border.</p>
<p class="dashed">A dashed border.</p>
<p class="solid">A solid border.</p>

높이와 너비 : CSS Height and Width

div {
  height: 200px;
  width: 50%;
  background-color: powderblue;
}

CSS 여백 : CSS Margin

p {
  margin-top: 100px;
  margin-bottom: 100px;
  margin-right: 150px;
  margin-left: 80px;
}

CSS 박스모델 : CSS Box Model

div {
  width: 300px;
  border: 15px solid green;
  padding: 50px;
  margin: 20px;
}

CSS 아이콘 모델 : CSS Icons

<head>
<script src="https://kit.fontawesome.com/a076d05399.js" crossorigin="anonymous"></script>
</head>

<i class="fas fa-cloud"></i>
<i class="fas fa-heart"></i>
<i class="fas fa-cloud" style="font-size:24px;"></i>
<i class="fas fa-cloud" style="font-size:36px;"></i>

CSS 오버플로 모델 : CSS Layout – Overflow

div {
  width: 200px;
  height: 50px;
  background-color: #eee;
  overflow: visible;
}

CSS 가상클래스 :

CSS Links

/* unvisited link */
a:link {
  color: red;
}

/* visited link */
a:visited {
  color: green;
}

/* mouse over link */
a:hover {
  color: hotpink;
}

/* selected link */
a:active {
  color: blue;
}

CSS Dropdowns

<style>
.dropdown {
  position: relative;
  display: inline-block;
}

.dropdown-content {
  display: none;
  position: absolute;
  background-color: #f9f9f9;
  min-width: 160px;
  box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
  padding: 12px 16px;
  z-index: 1;
}

.dropdown:hover .dropdown-content {
  display: block;
}
</style>

<div class="dropdown">
  <span>Mouse over me</span>
  <div class="dropdown-content">
    <p>Hello World!</p>
  </div>
</div>