<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>css | ユガラボ</title>
	<atom:link href="https://yugalab.net/archives/tag/css/feed" rel="self" type="application/rss+xml" />
	<link>https://yugalab.net</link>
	<description>pursue the beauty with yuga lab.</description>
	<lastBuildDate>Fri, 18 Dec 2015 03:18:04 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>
	<item>
		<title>【css/備忘録】何をどうしてもテキスト選択してほしくない時の対処法</title>
		<link>https://yugalab.net/archives/3054</link>
					<comments>https://yugalab.net/archives/3054#comments</comments>
		
		<dc:creator><![CDATA[ユーリ]]></dc:creator>
		<pubDate>Wed, 14 Oct 2015 03:00:43 +0000</pubDate>
				<category><![CDATA[html/css]]></category>
		<category><![CDATA[technical]]></category>
		<category><![CDATA[css]]></category>
		<guid isPermaLink="false">http://yugalab.net/?p=3054</guid>

					<description><![CDATA[<p>お仕事で詰まった案件の備忘録。cssやwebview関連で… 先日、webアプリの制作案件のうち一部の作業を担当しまして、こういうご注文がありました。 「ブラウザ内での選択機能を制限したい。」 webアプリの場合、ブラウ [&#8230;]</p>
<p>The post <a href="https://yugalab.net/archives/3054">【css/備忘録】何をどうしてもテキスト選択してほしくない時の対処法</a> first appeared on <a href="https://yugalab.net">ユガラボ</a>.</p>]]></description>
										<content:encoded><![CDATA[<p>お仕事で詰まった案件の備忘録。<br />cssやwebview関連で…<br />
<div class="fold_post">
<style type="text/css">
.button_sample_20151014{
	box-shadow	: -2px -2px 2px #999 inset;
	border:1px solid black;
	border-radius:8px;
	padding		: 16px;
}
.button_sample_20151014:active{
	box-shadow	:2px 2px 2px #999 inset;
	color		:transparent;
	text-shadow	:2px 2px 0px #666;
}
</style>

<br />先日、webアプリの制作案件のうち一部の作業を担当しまして、<br />こういうご注文がありました。<br />
「ブラウザ内での選択機能を制限したい。」<br />
<br />webアプリの場合、ブラウザ内であたかもネイティブアプリの如く、<br />機能やレイアウトを実装します。主にcssとjavascriptで。<br />また、アプリ風のページを作って、<br />ネイティブアプリ内の機能の一部としてwebviewでページを呼び出すこともあります。<br />イメージ的にはこんなかんじ。<br /><a href="https://yugalab.net/wp-content/uploads/2015/10/20151015_a01.jpg"><img fetchpriority="high" decoding="async" class="alignnone size-full wp-image-3230" src="https://yugalab.net/wp-content/uploads/2015/10/20151015_a01.jpg" alt="20151015_a01" width="400" height="640" srcset="https://yugalab.net/wp-content/uploads/2015/10/20151015_a01.jpg 400w, https://yugalab.net/wp-content/uploads/2015/10/20151015_a01-187x300.jpg 187w" sizes="(max-width: 400px) 100vw, 400px" /></a><br />その際、ブラウザの標準機能である「選択操作」ができてしまうと、こんなふうにページ内のDOMを選択できてしまいます。<br />
<a href="https://yugalab.net/wp-content/uploads/2015/10/20151015_a02.jpg"><img decoding="async" src="https://yugalab.net/wp-content/uploads/2015/10/20151015_a02.jpg" alt="20151015_a02" width="400" height="640" class="alignnone size-full wp-image-3233" srcset="https://yugalab.net/wp-content/uploads/2015/10/20151015_a02.jpg 400w, https://yugalab.net/wp-content/uploads/2015/10/20151015_a02-187x300.jpg 187w" sizes="(max-width: 400px) 100vw, 400px" /></a><br />こういうことができると機能的に不便というわけではありませんが、<br />「見た目上よくない」「スタイリッシュじゃない」という声があがります。<br />ごもっともです。<br />なんとかしましょう。<br />

<br /><h3 class="section_title putit_caption l_green">対処1:cssで選択を制限</h3><br />まず、最初の対処はこちら。<br />大体の場合はこれで済みます。<br />
<pre class="brush:css">
*:not(input){
    -moz-user-select: none;
    -webkit-user-select: none;
    -ms-user-select: none;
    user-select: none;
}
</pre>
<span class="f_blue">user-select : none;</span>とは、「この部分の選択を禁止する」という意味のcssプロパティです。<br />
ほとんどのブラウザは対応しているハズなので、これで効けば一件落着。
<br /><h4 class="section_subtitle putit_caption">サンプル</h4>
<div style="border:1px solid black;margin:8px 0;text-align:center;font-size:80%;">
	<div class="button_sample_20151014" style="margin:35px 10% 20px 10%;
				background-color:#CCF;">user select指定なし(選択可)</div>
	<div style="-moz-user-select: none;
				-webkit-user-select: none;
				-ms-user-select: none;
				user-select: none;">
		<div class="button_sample_20151014" style="margin:20px 10%;background-color:#FCC;">user select指定あり(選択不可)</div>
				<div class="height:1px;overflow:hidden;">　</div>
	</div>
	
</div>
しかし、webviewや一部のAndroid系ブラウザでは、user-selectが効かないことがあります…<br />
その場合は次の対処。<br />


<br /><h3 class="section_title putit_caption l_green">対処2:選択状態カラーを透明にしてしまう</h3><br />
デフォルトでは選択を行うと、選択部分が青くなりますが、<br>
実は、その「選択したら青」といった色を変えることができちゃいます。
<pre class="brush:css">
*{
    -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
</pre>
選択色を透明にしてしまえば、仮に選択状態にできてしまったとしても、選択していることがわからなくなります！！(いささか乱暴ですが)<br />
しかし、これも効かないことがあります。そんな手強いブラウザには次の対処。<br />

<br /><h3 class="section_title putit_caption l_green">対処3:touchstartのイベントをキャンセルする</h3><br />
これはもういろいろ犠牲になる最終手段ですが、preventDefault()でイベント自体を発生させないようにします。
この方法を使う場合は、個別にclick時の挙動などを書かなければならないので注意しましょう。
<pre class="brush:js">
$(function(){
	$(".target-button").on("touchstart mousedown",function(e){
		 e.preventDefault();
	});
});
</pre>
<h4 class="section_subtitle putit_caption">サンプル</h4>
<div style="border:1px solid black;margin:8px 0;text-align:center;font-size:80%;">
	<div class="button_sample_20151014" style="margin:20px 10% 20px 10%;
				background-color:#CCF;">preventDefaultなし</div>
	<div style="-moz-user-select: none;
				-webkit-user-select: none;
				-ms-user-select: none;
				user-select: none;">
	<div class="button_sample_20151014 button_sample_20151014_2" style="margin:20px 10%;background-color:#FCC;">preventDefaultあり</div>
	</div>
</div>
<script>
$(function(){
	$(".button_sample_20151014_2").on("touchstart mousedown",function(e){
		 e.preventDefault();
	});
});
</script>
今回はこんな感じですみません。
以上です！

</div>
</p><p>The post <a href="https://yugalab.net/archives/3054">【css/備忘録】何をどうしてもテキスト選択してほしくない時の対処法</a> first appeared on <a href="https://yugalab.net">ユガラボ</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://yugalab.net/archives/3054/feed</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>【CSS】cssだけでオシ心地のよいボタンを作る</title>
		<link>https://yugalab.net/archives/87</link>
		
		<dc:creator><![CDATA[ユーリ]]></dc:creator>
		<pubDate>Fri, 07 Nov 2014 07:24:43 +0000</pubDate>
				<category><![CDATA[html/css]]></category>
		<category><![CDATA[technical]]></category>
		<category><![CDATA[css]]></category>
		<guid isPermaLink="false">http://yugalab.net/?p=87</guid>

					<description><![CDATA[<p>こんにちは。cssの表現についてご紹介いたします。 わたくしがHTMLやCSSのコーディングに初めて触れたのは、もう10年以上前のお話ですが、 久々にHTMLやCSSをお仕事で扱うことになった今、最近のCSSの進化に驚か [&#8230;]</p>
<p>The post <a href="https://yugalab.net/archives/87">【CSS】cssだけでオシ心地のよいボタンを作る</a> first appeared on <a href="https://yugalab.net">ユガラボ</a>.</p>]]></description>
										<content:encoded><![CDATA[こんにちは。cssの表現についてご紹介いたします。<br/>
<style type="text/css">
<!--
.exsample_20141107,.exsample_20141107_2,.exsample_20141107_3{
display:inline-block;
margin: 6px auto 6px auto;
padding:4px;
width:100%;
border:1px solid #666;
border-radius:6px;
background-color:#EEE;
box-shadow:-2px -2px 2px #999 inset;
}
.exsample_20141107_2:active{
box-shadow:2px 2px 2px #999 inset;
color:transparent;
text-shadow:2px 2px 0px #666;
}
.exsample_20141107_3:active{
box-shadow:2px 2px 2px #999 inset;
}
.exsample_20141107_2:hover,.exsample_20141107_3:hover{
background-color:#F6F6F6;
}
-->
</style>
<br/>
わたくしがHTMLやCSSのコーディングに初めて触れたのは、もう10年以上前のお話ですが、<br/>
久々にHTMLやCSSをお仕事で扱うことになった今、最近のCSSの進化に驚かされました。<br/>
<br/>
<span id="more-87"></span>
<br/>
Webサイトには欠かせない要素であるボタン。<br/>
昔はボタンといえば画像で用意するものでした。<br/>
しかし最近では、CSSの陰影表現などによってビジュアルの良いボタンを画像無しで表示できてしまうのです。<br/>
<br/>
<h3 class="putit_caption l_red font120">まずはこちらをご覧ください。<br/>CSSのみで立体的なボタンを表示しています。↓</h3><br/>
<div style="text-align:center;width:20%;">
<span class="exsample_20141107">
ボタンっ！
</span>
</div>
このボタンの正体は、&lt;span&gt;タグです。<br/>
ここまではもはや常識かもしれませんがご説明いたします。<br/>※css内の色やサイズ(px)は一例です。<br/>
<span class="l_green">(1)&#8221;border : 1px solid #666;&#8221;で枠線を表現します。</span><br/>　→　<span style="padding:0;display:inline;border:1px solid #666;"
>ボタン</span><br/>
<span class="l_green">(2)&#8221;border-radius:6px;&#8221;で枠線を丸めます。</span><br/>　→　<span style="padding:0;display:inline;border:1px solid #666;border-radius:6px;"
>ボタン</span><br/>
<span class="l_green">(3)&#8221;box-shadow:-2px -2px 2px #999 inset;&#8221;で内側に影の表現を加えます。</span><br/>　→　<span style="padding:0;display:inline;border:1px solid #666;border-radius:6px;box-shadow:-2px -2px 2px #999 inset;"
>ボタン</span><br/>
あとは、paddingやbackground-colorで色や余白を整えると、上記のようなボタンになります。<br/>
<br/>
<h3 class="putit_caption l_red font120">さて、ここからが本題です！<br/>このボタンを押せるようにします・・・はい！↓</h3><br/>
<div style="text-align:center;width:20%;">
<span class="exsample_20141107_2" style="cursor:pointer;">
押してみ！
</span>
</div>
・・・押せましたか？押せましたね？<br/>
scriptは一切使用しておりません。<br/>
cssの「 :active 疑似クラス 」というものを使用しております。<br/>
<br/>
<h3 class="putit_caption l_blue font120">疑似クラスとはなんぞや？</h3><br/>
平たく言うと、<u>特定の条件を満たしたときだけ適用されるstyle</u>でございます。<br/>
今回使用した「 :active 」という疑似クラスは、「マウスでクリックされている間だけ」という条件です。<br/>
使い方は、条件付けさせたいstyleの後ろに疑似クラスをくっつけるだけです。
<div class="putit_column">
<span class="l_green">例:<br/>
.button{<br/>
　box-shadow　　:-2px -2px 2px #999 inset;　<br/>　<span class="l_red font080">※↑影を要素の内側(inset)の右下(-2px -2px)に表示させている</span><br/>
　border　　　　　:1px solid #666;<br/>
　border-radius　 :6px;<br/>
}<br/>
.button<span class="bold">:active</span>{ <span class="l_red font060">※←疑似クラス！ここに書いたstyleが、条件を満たしたときだけ適応されます。</span><br/>
　box-shadow　:2px 2px 2px #999 inset;　<br/>　<span class="l_red font060">※↑影を要素の内側(inset)の左上(2px 2px)に表示させている</span><br/>
　color　　　　　:transparent;<br/>
　text-shadow　:2px 2px 0px #666;　<br/>　<span class="l_red font060">※↑今回最大の芸コマポイント！本来のテキストを透明色にして、</span><br/>　　<span class="l_red font060">テキストの影として2px右下に同じ色のテキストを表示しています。</span><br/>
}<br/>
</span>
</div>
注目していただきたいのは、「 <span class="l_green">color :transparent;</span> と <span class="l_green">text-shadow :2px 2px 0px #666;</span> 」という部分です。<br/>
<span class="l_green">text-shadow</span>によって、もとのテキストと同じ色のテキストを、<span class="l_green">「2px右、2px下、ぼかし率0px」</span>という設定で表示しています。
<div class="putit_column">
実際にはこんなカンジです。→　<span style="text-shadow :2px 2px 0px #666;">テキスト</span>
</div>
この処理をしたうえで、もとのテキストの色を、なんと透明にしてしまいます！<br/>
透明にするスタイルはコチラ → <span class="l_green">color :transparent;</span> <br/>
すると、テキストの座標はそのままに、文字が少し右下にずれたように見えるのです！
<div class="putit_column">
ならべて見てみましょう。→ テキスト(ふつう)　<span style="color :transparent;text-shadow :2px 2px 0px #666;">テキスト(ズレ)</span></div>
このように細かい処理を行うことで、より「押してる感」が増していますね！<br/>
<br/>
疑似要素には、ほかにも<span class="l_blue">「マウスが乗っているときだけ適応」</span>という条件の<span class="l_blue">「 :hover　」</span>などがございます。<br/>
是非是非、ご活用ください！<br/>
<br/>
ちなみに芸コマのテキストずらし処理をしていないボタンはこちらです↓
<div style="text-align:center;width:20%;">
<span class="exsample_20141107_3" style="cursor:pointer;">
違和感っ！
</span>
</div><p>The post <a href="https://yugalab.net/archives/87">【CSS】cssだけでオシ心地のよいボタンを作る</a> first appeared on <a href="https://yugalab.net">ユガラボ</a>.</p>]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
