레이블이 css인 게시물을 표시합니다. 모든 게시물 표시
레이블이 css인 게시물을 표시합니다. 모든 게시물 표시

device-width deprecated

blogger 를 모바일 브라우져로 보면 width 폭이 작게 잡힌다.
유튜브와 같은 고정폭(width="560")의 iframe 경우 동영상 영역이 body 밖으넘어 가게 된다.
다음과 같이 device-width 로 모바일에서도 폭을 자동으로 계산하도록 되어 있었다.

<meta content='width=device-width, initial-scale=1' name='viewport'/>

그런데 device-width 는 deprecated 된 기능이다.
크롬의 경우 버전1 (Released 2008-12-11)
엣지의 경우 버전12 (Released 2015-07-28)
까지만 지원된다고 한다.

위 라인을 삭제하니 모바일에서도 데스크톱과 같은 화면으로 볼 수 있다.

그리고 이제는 다음과 같이 media 쿼리로 각 width 에 맞게 css 설정을 분기한다.

vuetify sidebar 사용시 횡스크롤 문제

# vuetify 로
# 위쪽은 v-toolbar 를 위치시키고
# 왼쪽에 v-navigation-drawer(sidebar)를 위치시키고
# 오른쪽에 v-data-table 을 위치하도록 구성했다.
# v-data-table 의 컬럼 개수가 많아
# 브라우저의 폭을 줄일때 맨 오른쪽 부분이 보이지 않는 문제가 발생했다.
# 원래 v-data-table 자체에서 횡스크롤이 가능하고
# 브라우저 폭이 일정 크기 아래로 줄어 들면
# breakpoint 로직이 작동해 아래쪽으로 컬럼이 적절하게 보여진다.
# 하지만 v-data-table 에서도 sidebar 폭만큼 오른쪽 더 스크롤 되지 않는다.
# 원인은 div 의 overflow css 속성이 안돼 발생한것으로
# scroll 또는 auto 로 명시해야 화면 횡스크롤이 된다.(이걸 몰라 계속 삽질ㅠ)
vi app.vue
<style>
/* toolbar, sidebar 는 고정하고 오른쪽 영역에서 화면 횡스크롤 하기 위한 css */
.top-view {
  position: fixed; /* 스크롤 해도 위치 고정 */
  width: 100%; /* 전체 너비 채우기 */
  z-index: 99; /* 같은 위치에 여러 엘리먼트가 위치할때 이 값이 클수록 앞쪽(위로 덮는)으로 온다. vuetify default z-index : 5 */
}
.body-view {
  display: flex; /* 모든 요소를 한줄에 표시 */
  margin-top: 50px; /* top-view 높이 감안해서 50px 만큼 아래에 위치 */
}
.left-view {
  display: flex; /* 모든 요소를 한줄에 표시 */
  position: fixed; /* 스크롤 해도 위치 고정 */
  height: 100%; /* sidebar 높이를 전체 채우기 */
}
.right-view {
  width: 100%; /* 오른쪽 영역의 폭을 전체 채우기 */
  overflow: auto; /* 또는 scroll 값, 횡스크롤 가능하도록 */
  margin-left: 100px; /* sidebar 폭 감안해서 100px 만큼 오른쪽에 위치 */
}
</style>
<template>
  <v-app>
    <div class="top-view>
      <ysoftmanToolbar />
    </div>
    <div class="body-view">
      <div class="left-view">
        <ysoftmanNavigation />
      </div>
      <div class="right-view">
        <ysoftmanDatatable />
      </div>
    </div>
  </v-app>
</template>

<script>
import ysoftmanToolbar from '@/components/ysoftmanToolbar';
import ysoftmanNavigation from '@/components/ysoftmanNavigation';
import ysoftmanDataTable from '@/components/ysoftmanDataTable';
export default {
  name: 'App',
  components: {
    ysoftmanToolbar,
    ysoftmanNavigation,
    ysoftmanDataTable,
  },
  data() {
    return {};
  },
};
</script>

CSS 단위

CSS(Cascading Style Sheets)로 html 태그 속성 중 width, padding 등 값을 정할때 여러 단위가 있다.

절대적인 크기를 명시할때 사용
cm (centimenters)
mm (millimeters)
in (inches)
px (pixels)
pt (points)

상대적 크기를 명시할때 사용
em (relative to the font-size, 현재 폰트 크기의 x배)
font-size(16px) * 1.5(em) = 24px

rem (relative to the root element font-size, 루트 폰트 크기의 x배)
ex (relative to the x-height of the font, 현재 폰트 높이의 x배)
ch (relative to the "0", 문자 0 의 폭을 기준으로 x배)

% (relative to the parent elemnt, 부모 영역 폰트크 대비 %비율)
table td 등에서 width 는 브라우저 윈도우 대비 차지하는 비율을 나타낸다.

vw (relative to the viewport width, 뷰폭 대비 %비율)
vh (relative to the viewport height, 뷰높이 대비 %비율)

blogger 왼쪽 여백 제거하기

blogger 기본 템플릿을 브라우저 폭을 줄이면 아래 그림처럼 블로거 왼쪽 공간이 좁혀지지 않는다. 사실, 왼쪽,오른쪽,아래쪽에 여백이 생긴다.
(모니터에 브라우저의 폭을 줄여서 보면 쓸데없는 왼쪽 공간으로 블로그 내용이 그만큼 한눈에 들어오지 않는 문제가 있다.)




chrome debug(F12) 로 찾아본 결과 다음과 같이 body-fauxcolumn-outer 의 padding 값이 설정되어 있었다. padding 을 다음과 같이 0으로 수정하여 여백을 없앨 수 있다.

body, .body-fauxcolumn-outer {
  font: normal normal 12px Arial, Tahoma, Helvetica, FreeSans, sans-serif;
  color: #222222;
  background: #eeaa00 none repeat scroll top left;
  /*
  ysoftman 왼쪽,오른쪽,아래 여백 없애기
  padding: 0 40px 40px 40px;
  */
  padding: 0 0 0 0;
}