質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

2回答

223閲覧

cssの拡張プラグインについて。

syosinsyaprogra

総合スコア67

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2018/10/18 06:43

編集2018/10/18 06:59

不特定多数からcssファイルをうけつけて、それを使うサイトをつくりたいのですが、cssの機能の拡張をjsですることは可能ですか?
拡張したいのはjqueryのnext.prevのようなもののみでいいです。
同じ要素内の兄弟要素を自由に選択したいです。
隣接兄弟結合子は直後の一つなので、まあnextは無理をすれば大丈夫そうですが、prevはもともとの機能がないようで拡張したいです。
すみません。日本語がめちゃくちゃ変ですね。
cssのファイルをユーザーからうけつけます。ユーザーが、それで自由に投稿した画像や要素を装飾します。そこでprevやnextのような機能が使えたらなと思いました。そこで事前にcssを拡張できるようなjsファイルを作成しておき、ユーザーにはそれを読み込んでもらいます。それでcss上でprevやnextの機能をcssで使えるようにする。これは可能ですか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

x_x

2018/10/18 06:48

拡張でjsするの意味が分かりません。CSSファイルだけを受け付けるならスクリプトの出番はないのでは?
dice142

2018/10/18 06:50

質問文が意味不明です。第三者が見て分かるように修正してください。やりたいことも伝わってこないです。
dice142

2018/10/18 07:10

修正していただきましたが、「prevやnextの機能」がなぜ必要なのかわかりません。bootstrap的なものなのかそれともwordpressのテーマ編集みたいなものなのか似たようなサービスなど、イメージが掴める情報がほしいです。
syosinsyaprogra

2018/10/18 07:16

作りたいものが、画像を複数投稿して、それを使って投稿を作れるsnsなので、隣接兄弟結合子だけでなく、prevがあればすこしはアニメーションの幅が広がるかなと思いました。
syosinsyaprogra

2018/10/18 07:17

まず画像やcssファイルを投稿します。そしてそれを公開できるという形です。jsを不特定多数から受付て、不特定多数に公開するのは危険と聞いたので、cssで不完全でもすこしはアニメーションができるようにしたいです。
guest

回答2

0

可能性の話として。

HTML

1 <p>red</p> 2 <p class="a">normal</p>

このようなHTMLの.aから見た兄要素のつもりでCSSファイルに次のように書いたとします。

CSS

1*:has(+p.a) { 2 color: red; 3}

https://developer.mozilla.org/ja/docs/Web/CSS/:has
https://drafts.csswg.org/selectors/#has-pseudo

これは現状対応ブラウザがないため、たとえquerySelectorAllを使ったとしても失敗します。

JavaScript

1document.querySelectorAll('*:has(+p.a)'); // Uncaught DOMException

しかし、jQueryなら対応しているため取得することができます。

jQuery

1$('*:has(+p.a)').css({ color: 'red' });

http://api.jquery.com/has-selector/

問題はセレクタとプロパティをどのように取得するかです。
CSSOMでは取得できず、Ajaxでテキストとして取得することになるかもしれませんが、メディアクエリ・詳細度なども考慮してテキストを解析するのは困難を極めるかと思います。

投稿2018/10/18 08:56

x_x

総合スコア13749

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

syosinsyaprogra

2018/10/18 09:10

そうですか、ありがとうございました。やはり難しいのですね。
guest

0

何度も質問文とコメントを読み直しましたが、全体のイメージが掴めないので
何が聞きたいのかというところに焦点をあててみました。

質問の根本は、「CSSでJavaScriptの機能を追加できるか」ですよね?

できません。

prevやnextはおそらくユーザのマウス操作で行うものですよね。
CSS3は装飾が目的で、ユーザの操作を受け付けるものではないです。
せいぜいカーソルが乗ったとか要素が選択されたくらいしか把握できません。

投稿2018/10/18 07:42

dice142

総合スコア5158

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

syosinsyaprogra

2018/10/18 07:45

そうですか。cssの隣接兄弟結合子の+って直後の要素を指定しますよね? それを直前のものを指定するというのもできませんか?
syosinsyaprogra

2018/10/18 07:45

私がnextやprevの理解をちゃんとしていないのかもしれません。、すみません。
dice142

2018/10/18 07:50

> 直前のものを指定するというのもできませんか? 現状はCSSのみでそういう指定はできなさそうです。 できたとして、どう使う予定ですか?
syosinsyaprogra

2018/10/18 08:44

現状ではできなさそうなのでそれをjsでできるようにしたかったのですが。 画像などを複数利用して一つの投稿を形成させたいので、htmlの兄弟要素として画像を並べて、そこでhover.activeなどで隣接兄弟結合子において直前のものを指定できれば、12345と並んでいれば、5をhoverしたときに1を変化させることができるので、サービスが向上すると思いました。 1をhoverしたときに、5を動かすことはできるのに、逆は、できないというのなら使いにくいと思いました。
dice142

2018/10/18 08:54

そういう使い方であればCSSでの代案は難しいですね。JavaScriptがないと厳しいです。
syosinsyaprogra

2018/10/18 09:09

そうですか。わかりにくいのに、ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問